如何在 Java 中檢查字串是否為整數
Rupam Yadav
2023年1月30日
2020年10月15日
-
通過 Java 中的
Character.digit()
檢查字串是否為整數 -
通過 Java 中的
string.matches(pattern)
檢查字串是否為整數 -
通過 Java 中的
Scanner.nextInt(radix)
檢查字串是否為整數
Java 中的 String 和 Integer 經常用於儲存資料,但有時我們可能要檢查一種資料型別是否包含與另一種資料型別相容的元素。
我們知道一個字串可以包含字母、符號和數字,因此確定我們的字串所包含的資料型別是很有用的。我們將看到用不同方法檢查字串的例子。
通過 Java 中的 Character.digit()
檢查字串是否為整數
我們可以看到,下面的例子中有三個字串,我們可以把它們傳入函式 isStringInteger(stringToCheck, radix)
中。radix
告訴我們想要得到的數字的範圍,這裡我們使用的是 10,允許的範圍是 0 到 9。
Character.digit()
檢查字串中的每個字元,如果是數字,則返回一個大於 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)
檢查字串是否為整數
在下一個識別字串是否包含整數元素的方法中,我們可以使用正規表示式,它可以幫助匹配一個特定的模式,即數值。-?\\d+
就是我們可以對字串進行匹配的表示式,並得到布林型別的結果。
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
Author: 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 中以十六進位制字串轉換位元組陣列
- 如何在 Java 中執行字串到字串陣列的轉換
- 如何將 Java 字串轉換為位元組
- 如何從 Java 中的字串中刪除子字串
- 用 Java 生成隨機字串
- Java 中的交換方法