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