链表的链接 - int indexOf(String)

时间:2016-02-14 22:45:49

标签: java string linked-list indexof

如果创建自己的int indexOf(String str)类作为StringBuilder的链接列表,您将如何创建方法char。你会使用一堆逻辑循环还是更容易解析StringBuilder对象然后将每个与str进行比较?我做了几次尝试,但没有运气在下面的情况下整理逻辑:

实施例。查询:

b1 = new MyStringBuilder("who is whoing over in whoville");
String s1 = new String("who");
String s2 = new String("whoing");
String s3 = new String("whoville");
String s4 = new String("whoviller");
String s5 = new String("wacky");  

我目前的方法:
我可以让它在开头的情况下工作,或者如果找不到但在字符串中间识别str不起作用。

public int indexOf(String str)
    {
        int index =-1; //index at which str is first found in linked list string of chars
        int count = 0; //num of matches
        int firstI = -1;
        int sI=0; // dynamic counter variable to allow str.length and for loop to interact
        CNode currNode = firstC;
        for (int i = 0; i < length; i++)
        {
            if (currNode.data == str.charAt(sI))
            {
                if (count < 1)
                    firstI = i;
                count++;
            }

            if (count == 0 && (sI == str.length()-1))
                sI=0;

            if (count == str.length())
            {
                index = firstI;
                break;
            }

            if (count > 0 && currNode.data != str.charAt(sI))
            {
                sI = 0;
                count = 0;
            }


            currNode = currNode.next; //increment
            sI++;
        }

        return index;
    } 

1 个答案:

答案 0 :(得分:1)

假设MyStringBuildertoString(),您可以实现此目的。

如果您不允许这样做,您需要在您的字符列表中循环以查找第一个字符。如果匹配,则下一个字符匹配您要查找的单词中的第二个,依此类推。