我知道这个问题被发布了很多,我检查了一些解决方案,但没有一个对我来说完美。
我想要的是检查 TextField 中的 Stringinput 是否有效。有效条目仅是正整数,换句话说,所有 >=0 且为整数的内容。
我尝试了类似的解决方案,发现:
try {
int input = Integer.valueOf(fieldwaitAfterAction.getText());
if(input < 0)) {
validInput = false;
} else {
validInput = true;
}
} catch(NumberFormatException e) {
validInput = false;
}
适用于大多数错误模式,但如果我输入“+0”或“-0”之类的内容,它就会通过,而实际上情况并非如此。 所以我想要一个纯整数,在开头、中间或结尾处没有任何字符。
解决这个问题的最佳方案是什么?
非常感谢!
最佳答案
public static boolean checkForDigits(final String toCheck){
boolean flag = true;
char[] toCheckArray = toCheck.toCharArray();
for(int index=0; index < toCheckArray.length, flag==true; index++){
if( ! ( ( (int)toCheckArray[index] > 47 ) && ( (int)toCheckArray[index] < 58 ) ) ){
flag = false;
}
}
return flag;
}
给你。如果全部都是数字则返回 true,否则返回 false。 最坏情况是 O(n) 时间。如果检测到数字以外的任何内容,则 < O(n)。
关于java - 仅检查字符串中整数的工作解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31278510/