gpt4 book ai didi

java - 这个循环计算字符串中子字符串出现的次数,如何实现?

转载 作者:行者123 更新时间:2023-12-02 05:34:23 25 4
gpt4 key购买 nike

public static int keywordCount (String str, String substr) {
int count = 0;
int i = 0;
while ((str.indexOf(substr, i)) != -1) {
count++;
i += substr.length();
}
System.out.println(count);

return count;
}

这是我老师的循环示例。我真的需要一些解释才能理解这个循环是如何工作的?

提前致谢。

最佳答案

它使用String#indexOf(String, int)方法,在 Javadoc 中定义为,

Returns the index within this string of the first occurrence of the specified substring, starting at the specified index. ... If no such value of k exists, then -1 is returned.

请注意,i 是索引(因此i += substr.length(); 表示它将向前移动匹配的长度)。当没有更多匹配时,该方法返回 -1 并结束循环。另外,我认为这个

while ((str.indexOf(substr, i)) != -1)

应该是

while ((i = str.indexOf(substr, i)) != -1)

那么我相信逻辑是正确的。或者,

i = substr.length() + str.indexOf(substr, i);

关于java - 这个循环计算字符串中子字符串出现的次数,如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25152325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com