[英]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.