如何循环遍历链表并打印与输入匹配的每个数据块?



我正在研究这种方法,但我遇到了一个问题。当我输入一个与链表索引中的数据匹配的单词时,它只打印链表的第一个索引,其次数与我输入的单词在整个链表中出现的次数相同。

public void iteratePrint(T aData) {
if (head == null) {
return;
}
//Typecast aData to string, and make it lowercase.
String a = (String)aData;
String strInput = a.toLowerCase();
//Create temp listnode to loop through.
ListNode temp =  head;

//While temp is not null, check for match and if so, print.
while(temp != null) {
//Typecast temp.data into string (all of the data is a string anyway) and
//Make sure it is lowercase.
String b = (String)temp.data;
String strTemp = b.toLowerCase();

//This checks for the match and prints the current line.
//Not currently working
if(strTemp.contains(strInput)){
System.out.println(temp.getCurrent());
}
temp = temp.next;
}
}
例如:链表包含这些字符串数据和它们各自的索引(球弹得很远,狗玩捡球,我最喜欢的玩具是球)。如果我输入的是"ball",我希望输出的是
balls bounce far
dogs play fetch with balls
my favorite toy is a ball

但是,它只输出如下内容:

balls bounce far
balls bounce far
balls bounce far

Ball出现了3次,它只打印出链表的第一个索引,即输入出现的次数。

如果strTemp.contains(strInput)不满足,temp = temp.next;将不会执行,因此while循环将卡住。将temp = temp.next;移出if语句

我解决了这个问题。问题是我的getCurrent()方法。它是返回current.data,当我需要返回我的temp.data。感谢所有帮助过我的人!我很感激。

相关内容

  • 没有找到相关文章

最新更新