Java检查字符串是否包含数字?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (121)

我正在编写一个程序,其中用户输入字符串的格式如下:

"What is the square of 10?"
  1. 我需要检查字符串中是否有一个数字。
  2. 然后只提取数字。
  3. 如果我用.contains("\\d+").contains("[0-9]+"),程序在字符串中找不到数字,不管输入是什么,但是.matches("\\d+")只有在只有数字的时候才能起作用。

我可以用什么作为寻找和提取的解决方案?

提问于
用户回答回答于

如果要从输入字符串中提取第一个数字,可以-

public static String extractNumber(final String str) {                

    if(str == null || str.isEmpty()) return "";

    StringBuilder sb = new StringBuilder();
    boolean found = false;
    for(char c : str.toCharArray()){
        if(Character.isDigit(c)){
            sb.append(c);
            found = true;
        } else if(found){
            // If we already found a digit before and this char is not a digit, stop looping
            break;                
        }
    }

    return sb.toString();
}

例子:

对于输入“123 abc”,上述方法将返回123。 对于“abc 1000 def”,1000。 对于“555abc 45”,555。 对于“abc”,将返回一个空字符串。

用户回答回答于

扫码关注云+社区

领取腾讯云代金券