Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查字符串是否不存在';我没有字母,只有数字_Java_String_Char_Int - Fatal编程技术网

Java 检查字符串是否不存在';我没有字母,只有数字

Java 检查字符串是否不存在';我没有字母,只有数字,java,string,char,int,Java,String,Char,Int,如何检查java中的字符串是否没有字母,只有数字?谢谢您的回答您可以使用regex:yourString.matches(\\d+) \\d表示一个数字0-9,+表示一个或多个,组合的\\d+等于一个或多个数字:)使用正则表达式: string.matches("\\d*"); “\d*”表示“一个数字(0-9)零次或多次”。或者,您可以将“*”替换为“+”表示“一次或多次”。您只需迭代字符串并检查每个字符(如果考虑性能,可能比使用正则表达式更有效) boolean isAllDigit(字符

如何检查java中的字符串是否没有字母,只有数字?谢谢您的回答

您可以使用regex:
yourString.matches(\\d+)


\\d
表示一个数字0-9,
+
表示一个或多个,组合的
\\d+
等于一个或多个数字:)

使用正则表达式:

string.matches("\\d*");

“\d*”
表示“一个数字(0-9)零次或多次”。或者,您可以将“*”替换为“+”表示“一次或多次”。

您只需迭代字符串并检查每个字符(如果考虑性能,可能比使用正则表达式更有效)

boolean isAllDigit(字符串s){
对于(int i=0;i'9'){
返回false;
}
}
返回true;
}

你为什么不试试看呢

    String number="a123.2";
    try {
        Double.parseDouble(number);
        System.out.println("It's a number");
    } catch (Exception e) {
        System.out.println("This is not a number!");
    }

isNumeric(字符串)验证输入字符串中的所有字符是否都是数字

它的实现方式是(如果您不希望第三方依赖):

intsz=str.length();
对于(int i=0;i
谢谢你的解释,如果我看起来很烦人,我很抱歉,但是regex怎么会比遍历所有这些东西慢呢?我是一个初学者,只是询问itI背后的理论我不确定正则表达式在Java中是如何实现的,但通常的方法是将正则表达式编译成有限自动机,然后在字符串上运行自动机,看看它是否匹配。在这种情况下,自动机相当简单。但是,在任何一种情况下,您都将迭代整个字符串。因此,使用正则表达式的成本大约是:“构建自动机”+“迭代”。上面代码的成本只是“迭代”。因此,如果你有200亿个字符串,上面的代码会更快。如果你只有一个很长的字符串,我认为这不会有什么区别,因为不管字符串长度如何,你只构建一次自动机,它的大小由正则表达式决定。
    String number="a123.2";
    try {
        Double.parseDouble(number);
        System.out.println("It's a number");
    } catch (Exception e) {
        System.out.println("This is not a number!");
    }
    int sz = str.length();
    for (int i = 0; i < sz; i++) {
        if (Character.isDigit(str.charAt(i)) == false) {
            return false;
        }
    }
    return true;