解析字符串时,我们总是使用StringTokenizer
或split
方法来解析字符串:
,
要么
。
要么
:
等等,
我的问题是我有一个文字文件,其中包含如下字符和点: CTA ... cc.tt..at TA ..... tct.c.t。
我的问题是解析这个文本文件并返回最大出现的点数,例如上面的文本文件应该返回:5
答案 0 :(得分:2)
使用正则表达式模式"(\\.+)"
,然后您可以检查捕获的组的长度。
查看java.util.regex.Pattern
和Matcher
。
答案 1 :(得分:2)
在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();
}
}
答案 2 :(得分:0)
您可以使用String.split而不是StringTokenizer(不推荐使用),并提供与一个或多个点匹配的正则表达式。
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)