Java 统计字符串中子字符串的出现次数
我正在努力找出代码中的错误在哪里 这是我的测试:Java 统计字符串中子字符串的出现次数,java,string,substring,Java,String,Substring,我正在努力找出代码中的错误在哪里 这是我的测试: @Test public void testCountOccurences() { assertEquals(1, sc1.countOccurences("ence")); assertEquals(2, sc1.countOccurences("en")); assertEquals(1, sc2.countOccurences("that")); assertEquals(0, sc2.countOccure
@Test
public void testCountOccurences()
{
assertEquals(1, sc1.countOccurences("ence"));
assertEquals(2, sc1.countOccurences("en"));
assertEquals(1, sc2.countOccurences("that"));
assertEquals(0, sc2.countOccurences("This"));
}
以下是我的方法:
public int countOccurences(String t)
{
int j = 0;
int i;
for(i = 0; i < sentence.length(); i++)
{
String subString = sentence.substring(i, i + t.length());
if(subString.equals(t))
{
j++;
}
}
return j;
}
public int countoccurrences(字符串t)
{
int j=0;
int i;
对于(i=0;i<句子长度();i++)
{
字符串子字符串=句子.subString(i,i+t.length());
if(子串等于(t))
{
j++;
}
}
返回j;
}
我假设您这样做是为了练习
看来你已经偏离了原来的底线
试着将(i=0;i
更改为(i=0;i,
我假设您这样做是为了练习
看来你已经偏离了原来的底线
尝试将(i=0;i更改为(i=0;i
我打赌你的问题是i+t.length()。当“i”接近句子长度时,i+t.length将比句子长度长,您将得到一个错误。我打赌您的问题是i+t.length()。当“i”接近句子长度时,i+t.length将比句子长度长,您将得到一个错误。您可以使用String.indexOf()
:
public int countOccurrences(final String t)
{
if (t == null || t.isEmpty())
return 0;
int index, startIndex = 0;
int len = t.length();
int ret = 0;
while (true) {
index = sentence.indexOf(t, startIndex);
if (index == -1)
break;
startIndex = index + len;
ret++;
}
return ret;
}
您可以使用String.indexOf()
进行以下操作:
public int countOccurrences(final String t)
{
if (t == null || t.isEmpty())
return 0;
int index, startIndex = 0;
int len = t.length();
int ret = 0;
while (true) {
index = sentence.indexOf(t, startIndex);
if (index == -1)
break;
startIndex = index + len;
ret++;
}
return ret;
}
将您的测试值包含在“句子”中会更容易帮助您。在aaa
中存在多少次aa
?将您的测试值包含在“句子”中会更容易帮助您。在aaa
中存在多少次aa
?