0

可能重复:
Java:如何检查字符串是否可解析为双精度字符串?

在Java中检查字符串中数字字符的最佳方法是什么?

    try {
        NumberFormat defForm = NumberFormat.getInstance();            
        Number n = defForm.parse(s);      
        double d = n.doubleValue();
    } 
    catch (Exception ex) {
        // Do something here...    
    } 

或者有没有更好的方法使用 REGEX?

我不想去掉数字。

4

5 回答 5

2
String test = "12cats";
//String test = "catscats";
//String test = "c4ts";
//String test = "12345";
if (test.matches(".*[0-9].*") {
    System.out.println("Contains numbers");
} else {
    System.out.println("Does not contain numbers");
} //End if
于 2012-06-25T11:14:58.130 回答
1

使用正则表达式你可以这样做 -

String s="aa56aa";
Pattern pattern = Pattern.compile("\\d");
Matcher matcher = pattern.matcher(s);

System.out.println(matcher.find());
于 2012-06-25T11:11:54.793 回答
0
/**
 * Return true if your string contains a number,
 * false otherwise.
 */
str.matches("\\d+");

例如:

"csvw10vsdvsv".matches("\\d+"); // true
"aaa".matches("\\d+"); // false
于 2012-06-25T11:08:59.950 回答
0
Pattern intsOnly = Pattern.compile("\\d+");
Matcher makeMatch = intsOnly.matcher("125455");
于 2012-06-25T11:11:18.197 回答
0

一个好的解决方案是使用regex链接<-在这里您拥有使用正则表达式所需的一切)。

于 2012-06-25T11:08:48.603 回答