-2

在解析字符串时,我们总是使用StringTokenizerorsplit方法来解析字符串: , 或 . 或者 :

等等,

我的问题是我有一个包含如下字符和点的文本文件:cta...cc.tt..at ta.....tct.ct

我的问题是解析这个文本文件并返回出现的最大点数,例如上面的文本文件应该返回:5

4

3 回答 3

3

基于 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();
    }
}
于 2013-10-01T20:46:33.567 回答
2

使用正则表达式模式"(\\.+)",然后您可以检查捕获组的长度。

查看 和 的 Java 正则表达式java.util.regex.Pattern文档Matcher

于 2013-10-01T20:08:53.533 回答
0

您可以使用 String.split 而不是 StringTokenizer(已弃用)并提供匹配一个或多个点的正则表达式。

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)

于 2013-10-01T20:02:31.597 回答