[英]Character.IsDigit returns false instead of true on an integer Java
[英]The java method Character.isDigit(char) returns true with an input of 'O'
我創建了一個 for 循環來遍歷給定的字符串,並使用 Character.isDigit(char) 如果字符串中的所有字母都是數字,則僅返回 true。 例如 isInteger("412") 返回真。 但是,輸入字符串“1O1”時,它返回真,這應該是假的,因為 O 是一個字母。
public boolean isInteger(String str)
{
for(int i = 0; i < str.length(); i++){
if(Character.isDigit(str.charAt(i))){
return true;
}
}
return false;
}
我也嘗試過提出條件:
if(str.charAt(i) != 'O' && Character.isDigit(str.charAt(i))){
return true;
}
但這沒有用。
如果字符串中的任何字符都是數字,則您的方法將返回 true。 1O1
中的兩個字符是數字,因此該方法將返回 true。
您需要檢查是否有任何字符不是數字:
for(int i = 0; i < str.length(); i++){
if(!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
所有字符都必須是數字才能使條件為真。 如果任何字符不是數字,則條件為假。
public boolean isInteger(String str)
{
if (str == null || str.length() == 0) return false;
for (int i = 0; i < str.length(); i++) {
if(!Character.isDigit(str.charAt(i))) { // not condition
return false;
}
}
return true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.