繁体   English   中英

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM