我无法弄清楚我做错了什么。我正在尝试计算输入字符串中的位数,但是例如,如果数字是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;
}
我的问题是我想把它变成一个字符串,因为字符串必须输入某种格式。
答案 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;
}