Java 如何返回字符串中连续出现的最大点数?
解析字符串时,我们始终使用Java 如何返回字符串中连续出现的最大点数?,java,java.util.scanner,Java,Java.util.scanner,解析字符串时,我们始终使用StringTokenizer或split方法通过以下方式解析字符串: , 或 . 或 : 等等, 我的问题是我有一个文本文件,其中包含如下字符和点: cta…cc.tt..在 ta…..tct.c.t 我的问题是解析此文本文件并返回点的最大出现次数,例如,上面的文本文件应返回:5您可以使用String.split而不是StringTokenizer(已弃用),并提供匹配一个或多个点的正则表达式 使用正则表达式模式“(\\.+)”,然后可以检查捕获组的长度 查看Java
StringTokenizer
或split
方法通过以下方式解析字符串:
,
或
.
或
:
等等,
我的问题是我有一个文本文件,其中包含如下字符和点:
cta…cc.tt..在
ta…..tct.c.t
我的问题是解析此文本文件并返回点的最大出现次数,例如,上面的文本文件应返回:5您可以使用String.split而不是StringTokenizer(已弃用),并提供匹配一个或多个点的正则表达式
使用正则表达式模式
“(\\.+)”
,然后可以检查捕获组的长度
查看Java正则表达式文档,了解
Java.util.regex.Pattern
和Matcher
基于ct的原始答案,如果文件不是太大,可以将其作为字符串加载,并使用string.split
通过对每个非点字符串进行拆分来提取点,即[^.]+
"cta...cc.tt..at ta.....tct.c.t.".split("[^.]+") =>
{ "", "...", ".", "..", ".....", ".", ".", "." }
那么获取最长字符串的长度就很简单了
int longestCount = 0;
for (String dots : text.split("[^.]+")) {
if (dots.length() > longestCount) {
longestCount = dots.length();
}
}
实际上,你会想匹配所有不是点的东西,生成一个包含点的字符串数组。好的点-答案编辑比我的尝试好得多。谢谢,这就是我想要的。是的,我知道这很模糊,但它看起来像家庭作业,所以这是家庭作业级别的答案。