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();
    }
}

实际上,你会想匹配所有不是点的东西,生成一个包含点的字符串数组。好的点-答案编辑比我的尝试好得多。谢谢,这就是我想要的。是的,我知道这很模糊,但它看起来像家庭作业,所以这是家庭作业级别的答案。