java - 仅检查字符串中整数的工作解决方案?

标签 java regex string

我知道这个问题被发布了很多,我检查了一些解决方案,但没有一个对我来说完美。

我想要的是检查 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/

相关文章:

java - "Server returned HTTP response code: 400"尝试用 Java 发送短信

java - 如何使用 Java 有效地解析 HTML?

python - 在没有空格的情况下在 Python 中打印

java - 使用一个实例对列表进行排序

java - 如何在回合制游戏中存储游戏棋子的路径?

python - 正则表达式提取段落

java - 正则表达式 Java(标点符号)

java - 如何在字符串中只保留不同类型的字母,例如 : latin alphabet, 片假名、西里尔字母

c++ - <string> 在头文件中

c - 如何在C中获取未知长度的char*?