我在Java的字符串搜索代码中找不到错误吗?

时间:2019-03-23 22:44:44

标签: java loops nested-loops

我正在使用自己的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;
}

0 个答案:

没有答案