java 在字符串集合当中,获取集合连续相同的数字最大个数
时间: 2024-01-30 11:02:23 浏览: 73
你可以使用正则表达式来完成这个任务。具体的做法是首先将字符串集合转换成一个字符串,然后使用正则表达式匹配连续相同的数字,最后统计匹配到的数字个数并返回结果。
示例代码如下:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> strs = new ArrayList<>();
Collections.addAll(strs, "123", "11", "99", "55555", "999999");
int maxCount = getMaxCountOfSameDigits(strs);
System.out.println(maxCount); // 输出:6
}
public static int getMaxCountOfSameDigits(List<String> strs) {
String joinedStr = String.join("", strs); // 将字符串集合转换为一个字符串
String pattern = "(\\d)\\1*"; // 匹配连续相同的数字的正则表达式
int maxCount = 0;
java.util.regex.Matcher matcher = java.util.regex.Pattern.compile(pattern).matcher(joinedStr);
while (matcher.find()) {
int count = matcher.group().length();
if (count > maxCount) {
maxCount = count;
}
}
return maxCount;
}
}
```
上面的代码中,我们首先定义了一个字符串集合 `strs`,其中包含了一些数字串。然后我们调用 `getMaxCountOfSameDigits` 方法获取集合中连续相同的数字最大个数。这个方法首先使用 `String.join` 方法将字符串集合转换成一个字符串,然后使用正则表达式匹配连续相同的数字,并统计匹配到的数字个数,最后返回结果。
在本例中,我们使用的正则表达式 `(\\d)\\1*` 中,`\\d` 表示数字,`\\1` 表示与第一个括号中匹配的内容相同,`*` 表示匹配零个或多个连续出现的前面的正则表达式。这个正则表达式可以匹配连续相同的数字。
阅读全文