Java:计算字符串中的整数数

时间:2016-10-03 00:32:52

标签: java string integer digit

我无法弄清楚我做错了什么。我正在尝试计算输入字符串中的位数,但是例如,如果数字是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;
}

我的问题是我想把它变成一个字符串,因为字符串必须输入某种格式。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

基本上是一个数字 - 一个连续的数字序列 因此,该算法的想法是计算这些序列的数量。

我想提出以下算法实现:

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