Java 检查字符串是否不存在';我没有字母,只有数字
如何检查java中的字符串是否没有字母,只有数字?谢谢您的回答您可以使用regex: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(字符
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;