簡體   English   中英

java 方法 Character.isDigit(char) 返回 true,輸入為 'O'

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM