Java で文字列が整数かどうかを調べる方法
Rupam Yadav
2023年10月12日
-
Java の
Character.digit()
で文字列が整数かどうかを調べる -
Java の
string.matches(pattern)
で文字列が整数かどうかを調べる -
Java の
Scanner.nextInt(radix)
で文字列が整数かどうかを調べる
Java における文字列と整数はデータを格納するために使用されることが多いですが、あるデータ型に別のデータ型と互換性のある要素が含まれているかどうかを確認したいことがあるかもしれません。
文字列にはアルファベット、記号、数字を含むことができることがわかっているので、文字列が保持しているデータの種類を判断するのに便利です。ここでは、さまざまな方法で文字列をチェックする例を見ていきます。
Java の Character.digit()
で文字列が整数かどうかを調べる
次の例では、関数 isStringInteger(stringToCheck, radix)
に渡すことができる 3つの文字列があることがわかります。ここでは 10 を使用しており、0 から 9 までの範囲を指定することができます。
文字列中のすべての文字をチェックし、桁であれば 0 以上の数値を返します。結果を正確にするために条件文を追加することもできます。
public class Main {
public static void main(String[] args) {
String str1 = "ABC123";
String str2 = "3030";
String str3 = "-9";
boolean integerOrNot1 = isStringInteger(str1, 10);
System.out.println("Is " + str1 + " an Integer? -> " + integerOrNot1);
boolean integerOrNot2 = isStringInteger(str2, 10);
System.out.println("Is " + str2 + " an Integer? -> " + integerOrNot2);
boolean integerOrNot3 = isStringInteger(str3, 10);
System.out.println("Is " + str3 + " an Integer? -> " + integerOrNot3);
}
public static boolean isStringInteger(String stringToCheck, int radix) {
if (stringToCheck.isEmpty())
return false; // Check if the string is empty
for (int i = 0; i < stringToCheck.length(); i++) {
if (i == 0 && stringToCheck.charAt(i) == '-') { // Check for negative Integers
if (stringToCheck.length() == 1)
return false;
else
continue;
}
if (Character.digit(stringToCheck.charAt(i), radix) < 0)
return false;
}
return true;
}
}
出力:
Is 12000003 an Integer? -> true
Java の string.matches(pattern)
で文字列が整数かどうかを調べる
次に、文字列に Integer の要素が含まれているかどうかを判別する方法では、特定のパターン、つまり数値と一致させることができる正規表現を使用することができます。この正規表現は、文字列と照合して、結果をブール型で取得することができます。
public class Main {
public static void main(String[] args) {
String str1 = "ABC123";
String str2 = "123";
String str3 = "000000009";
boolean integerOrNot1 = str1.matches("-?\\d+");
System.out.println("Is " + str1 + " an Integer? -> " + integerOrNot1);
boolean integerOrNot2 = str2.matches("-?\\d+");
System.out.println("Is " + str2 + " an Integer? -> " + integerOrNot2);
boolean integerOrNot3 = str3.matches("-?\\d+");
;
System.out.println("Is " + str3 + " an Integer? -> " + integerOrNot3);
}
}
出力:
Is ABC123 an Integer? -> false
Is 123 an Integer? -> true
Is 000000009 an Integer? -> true
Java の Scanner.nextInt(radix)
で文字列が整数かどうかを調べる
Java の有名な Scanner()
クラスを使用することもできます。その nextInt()
メソッドは、与えられた文字列が Int
型であるかどうかを調べることができます。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String str1 = "ABC123";
String str2 = "3030";
String str3 = "000000009";
System.out.println("Is " + str1 + " an Integer? -> " + isStringInteger(str1, 10));
System.out.println("Is " + str2 + " an Integer? -> " + isStringInteger(str2, 10));
System.out.println("Is " + str3 + " an Integer? -> " + isStringInteger(str3, 10));
}
public static boolean isStringInteger(String stringToCheck, int radix) {
Scanner sc = new Scanner(stringToCheck.trim());
if (!sc.hasNextInt(radix))
return false;
sc.nextInt(radix);
return !sc.hasNext();
}
}
出力:
Is ABC123 an Integer? -> false
Is 3030 an Integer? -> true
Is 000000009 an Integer? -> true
著者: Rupam Yadav
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn関連記事 - Java String
- Java で 16 進文字列のバイト配列を変換する方法
- Java で文字列から部分文字列を削除する方法
- Java で文字列から文字列配列への変換を実行する方法
- Java 文字列をバイトに変換する方法
- Java でランダムな文字列を生成する
- Java のスワップメソッド