繁体   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