質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

100878閲覧

javaで入力値が数字か文字列かを判定する方法

oimo

総合スコア251

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

2グッド

1クリップ

投稿2014/07/04 11:24

javaで、画面から入力された値が数字か文字列か判定したいのですが、簡単な方法ってあるのでしょうか?

rink, Abeginner👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

単純に数字のみか、数字以外が含まれるかを判断するのであれば、ぱっと思いつくのは以下の2通りです。

1.数値型の型にparseして例外が発生するかどうかで判定

(例)
static boolean isNum(String number) { try { Integer.parseInt(number); return true; } catch (NumberFormatException e) { return false; } }

2.数値の正規表現にマッチするかで判定

(例)
static boolean isNumMatch(String number) { java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("^[0-9]*$"); java.util.regex.Matcher matcher = pattern.matcher(number); return matcher.matches(); }

投稿2014/07/05 02:30

raou

総合スコア463

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

投稿2014/09/29 07:37

TaMaMhyu

総合スコア1356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

『パースする前にString型の値が数字かどうかを判定するには、どんな方法がありますか?』
という、質問に対しては、try-catchを使ったり正規表現を使ったり、すでに諸賢が答えられている方法でよいでしょう。
ただし、『パースする前にString型の値が数字かどうかを判定する』というプロセスを毎度繰り返すのはいささかよろしくないと思います。
大した処理ではないとはいえコードの重複というものです。
実装をどうするかは置いておいて、たとえば、
String型のデータsが与えられたら、常に以下のような形にするのがようのではないでしょうか。

int i = Text.stringToInt(s);

Textは文字列を扱うユーティリティクラスを想定。stringToInt(...)はStringをパラメータにして、intを返すstaticメソッド。
stringToInt(...)は、パラメータがnullや数字に変換できない文字列の場合は、例以外を発生することはなく、常に0を返すでしょう。
また、stringToInt(...)内で全角数字を半角数字に変換してしまったりしてもいいですね。

さらにいうと、

int i = DataConvertUtils.objectToInt(s);

DataConvertUtilsはObjectを様々方に変換するユーティリティクラスを想定。objectToInt(...)はObjectをパラメータにして、intを返すstaticメソッド。

質問の意図からずいぶん離れた回答だね、と言われたらその通りです。すみません。

投稿2016/09/30 05:13

pfunk1202

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問