计算给定字符串中数值的个数
Java 程序接受一个字符串并计算总数值。
public class Test2{
public static void main(String[] args){
String str = "I was 2 years old in 2002";
int count = 0, i;
for(i = 0; i < str.length(); i++){
if(str.charAt(i) >= 48 && str.charAt(i) <= 57){
count++;
// while(str.charAt(i) >= 48 && str.charAt(i) <= 57)
// i++;
}
}
System.out.println("Output: " +count);
}
}
输出 = 5
在取消注释 while 循环中写入的两行之后 -
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 25
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
at java.base/java.lang.String.charAt(String.java:712)
at Test2.main(Test2.java:9)
的输出应为2,因为有两个数值- 2,2002年,我已评论了在上面的代码中的两行,在取消对码后,相同的逻辑完全在C ++。
回答
使用模式替代@DarkMatter 的答案:
public static void main(String[] args) {
String str = "I was 2 years old in 2002";
long count = Pattern.compile("d+").matcher(str).results().count();
System.out.println(count);
}