Java:统计一个字符串中整数的个数

Java: Count the number of integers in a string

我不太明白我做错了什么。我正在尝试计算输入字符串中的数字数量,但是例如,如果数字是 21,我想将其计为字符串中的 1 个输入数字。

到目前为止我有以下内容,但我不知道如何将它算作 1 个整数而不是 2 个整数。

public static int countIntegers(String input) { 
    int count = 0;
    for (int i = 0; i < input.length(); i++) {
        if (Character.isDigit(input.charAt(i))) {
            count++;
        }
    }
    return count;
}

我的问题是我希望它成为一个字符串,因为必须输入特定格式的字符串。

您想拆分输入,然后检查每个子字符串是否为 int。

public static int countIntegers(String input) {
    String[] parsed = input.split(","); // , is the delimiter
    int count = 0;
    for (String s : parsed) {
        if (s.trim().matches("^-?\d+$")) { // A slow regex method, but quick and dirty
            count++;
        }
    }

    return count;
}

示例输入:home,21,car,30,bus,13

输出:3

基本上,一个数字 — 连续的数字序列。
因此,该算法的思想是计算此类序列的数量。

我想提出以下算法实现:

public static int countIntegers(String input) {
    int count = 0;
    boolean isPreviousDigit = false;

    for (int i = 0; i < input.length(); i++) {
        if (Character.isDigit(input.charAt(i))) {
            if (!isPreviousDigit) {
                count++;
                isPreviousDigit = true;
            }
        } else {
            isPreviousDigit = false;
        }
    }
    return count;
}