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