一個較大的字符串考慮以下幾點:如何找到字符串s的匹配#在java中
String s = "The The The the the the";
我如何才能找到的「該」字符串s中有多少實例?
s.matches("The")
只是告訴我,如果至少有一個是存在的。 s.contains("The")
是一樣的。
有沒有一些簡單的方法?
一個較大的字符串考慮以下幾點:如何找到字符串s的匹配#在java中
String s = "The The The the the the";
我如何才能找到的「該」字符串s中有多少實例?
s.matches("The")
只是告訴我,如果至少有一個是存在的。 s.contains("The")
是一樣的。
有沒有一些簡單的方法?
給的這是一個嘗試:
String test = "The The The the the the";
System.out.println(test.split("The").length);
爲什麼這會返回長度+ 1?例如test.split(「blah」)。length = 1 – mix 2012-03-26 07:28:22
感謝您的評論:原因在於這個調用實際上是使用提供的分隔符(我們的例子中的詞)來分割字符串,所以有分隔符+1的部分出現#1 – 2012-03-26 07:34:48
我的這個固定的分裂答案。 – 2012-03-26 07:42:57
您可以使用indexOf(str, count)
int count = 0;
String s = "The The The the the the";
String match = "The";
int searchStart = 0;
while ((searchStart = s.indexOf(match, searchStart)) != -1)
{
count++;
searchStart+= match.length();
}
您可以使用s.indexOf(以下簡稱 「」,指數);,如果將一些指標則增加計數和指數也並使其inot一個循環,直到索引中沒有找到。
注:最初指數的值是0
String s = "The The The The The sdfadsfdas";
List<String> list = Arrays.asList(s.split(" "));
Set<String> unique = new HashSet<String>(list);
for (String key : unique) {
System.out.println(key + ": " + Collections.frequency(list, key));
}
,只需拆分上的字的字符串進行計數。
String text = "the the water the the";
System.out.println(text.split("the", -1).length -1);
此外,如果你正在使用Apache Commons Lang中,你可以使用從StringUtils的
String text = "the the water the the";
int count = StringUtils.countMatches(text, "the");
System.out.println("count is " + count);
但是其計數功能不只是把那個在一個功能那是一個有點矯枉過正的:)
注意-1或你將得到錯誤的結果 – 2012-03-26 07:43:38
正如我知道Matcher.find()方法試圖找到與該模式匹配的輸入序列的下一個子序列。這意味着你可以通過調用此方法的比賽中多次重複:
int count = 0;
while (matcher.find()) {
count++;
}
你應該使用Matcher.start()和Matcher.end()來檢索匹配序列。
只是想發佈相同的答案。 – bezmax 2012-03-26 07:15:49
Dupe of http://stackoverflow.com/questions/8975019/java-find-the-number-of-times-a-word-is-present-in-a-string-is-there-something – sgowd 2012-03-26 07:01:09