Har*_*You 1 java string integer
说明:给定一个字符串,确定它是否是整数.例如,字符串"123"是整数,但字符串"hello"不是.
如果字符串中的所有字符都是数字,则为整数.
如果是整数则返回true,否则返回false.
提示:有一个方法Character.isDigit(),它将char作为参数并返回一个布尔值.
我到目前为止:
public boolean isInteger(String str) {
if(Character.isDigit(str.charAt(0)) == 0) {
return false;
}
for (int i = 0; i < str.length(); i++) {
if(Character.isDigit(str.charAt(i))) {
break;
} else {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是返回字符串"101"的布尔值而根本没有字符串("")
您可以使用正则表达式.
return str.matches("\\d+");
Run Code Online (Sandbox Code Playgroud)
但是,对于负数不会起作用.
您也可以使用Integer.parseInt并捕获NumberFormatException并相应地返回true/false.
或者,您不应该破坏您找到的第一个数字,因为您需要检查所有字符,直到找到一个不是数字的字符.同样,这不会捕获负数
public boolean isInteger(String str) {
if(str == null || str.trim().isEmpty()) {
return false;
}
for (int i = 0; i < str.length(); i++) {
if(!Character.isDigit(str.charAt(i))) {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,选项2是最好的,但您的指示似乎暗示您需要迭代字符值