计算给定字符串中数值的个数

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);
}


以上是计算给定字符串中数值的个数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>