在 Java 中检查并从字符串中提取数字
我正在编写一个程序,其中用户以以下格式输入字符串:
"What is the square of 10?"
- 我需要检查字符串中是否有数字
- ,然后只提取数字。
- 如果我使用 或 ,则无论输入是什么,程序都无法在字符串中找到数字,但只有在只有数字时才有效。
.contains("\\d+")
.contains("[0-9]+")
.matches("\\d+")
我可以使用什么作为查找和提取的解决方案?
我正在编写一个程序,其中用户以以下格式输入字符串:
"What is the square of 10?"
.contains("\\d+")
.contains("[0-9]+")
.matches("\\d+")
我可以使用什么作为查找和提取的解决方案?
试试这个
str.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();
}
例子:
对于输入“123abc”,上述方法将返回123。
对于“abc1000def”,为 1000。
对于“555abc45”,则为 555。
对于“abc”,将返回一个空字符串。