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;
}
我不太明白我做错了什么。我正在尝试计算输入字符串中的数字数量,但是例如,如果数字是 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;
}