我正在使用自己的String版本,它的一种对象方法应该能够获取正常的字符串并进行搜索。该类称为MyString,具有两个成员变量,即它包含的字符串的长度和字符串的数组。完整的类在下面,我无法确定最后一类。
indexOf方法唯一不起作用的时间是当字符串包含在MyString数组的末尾时。我得到了-1,而不是应该找到的索引。
测试用例: 用“ Trastamara”字符串初始化MyString。如果我搜索“ mara”,“ amara”甚至“ Trastamara”以字符串的最后一个字符结尾的任何内容,它将找不到该字符串。
public class MyString {
private int length;
private char[] characters;
public MyString()
{
length = 0;
}
public MyString(String s)
{
length = s.length();
characters = new char[length];
for(int i = 0; i <length; i++)
{
characters[i] = s.charAt(i);
}
}
public int indexOf(String s)
{
char[] sa = s.toCharArray();
int lastIndex = length - s.length();
int convoluted=0;
for(int i=1; i<=lastIndex;i++)
{
if(convoluted==s.length())
{
return i-1;
} else convoluted=0;
for(int j=0, k=i; j<s.length(); j++, k++)
{
if(sa[j]==characters[k])
{
convoluted++;
}
}
}
return -1;
}