这个 static
方法返回一个字符串在另一个字符串上出现的次数。
public static int numberOfOccurrences(String source, String sentence) {
int occurrences = 0;
if (source.contains(sentence)) {
int withSentenceLength = source.length();
int withoutSentenceLength = source.replace(sentence, "").length();
occurrences = (withSentenceLength - withoutSentenceLength) / sentence.length();
}
return occurrences;
}
测试:
String source = "Hello World!";
numberOfOccurrences(source, "Hello World!"); // 1
numberOfOccurrences(source, "ello W"); // 1
numberOfOccurrences(source, "l"); // 3
numberOfOccurrences(source, "fun"); // 0
numberOfOccurrences(source, "Hello"); // 1
顺便说一下,这个方法可以写在一行中,虽然很糟糕,但它也能够工作 :)
public static int numberOfOccurrences(String source, String sentence) {
return (source.contains(sentence)) ? (source.length() - source.replace(sentence, "").length()) / sentence.length() : 0;
}
aaaa
中搜索aa
,那么结果应该是2
还是3
? - Pshemowhile((newndx=str.indexOf("male cat",oldndx))>-1){found++;oldndx=newndx+8;}
。 - user557597