如果创建自己的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;
}
答案 0 :(得分:1)
假设MyStringBuilder
有toString()
,您可以实现此目的。
如果您不允许这样做,您需要在您的字符列表中循环以查找第一个字符。如果匹配,则下一个字符匹配您要查找的单词中的第二个,依此类推。