所以我要做的就是拿出我的清单,然后从最后开始。从那里我需要向后返回并将列表作为字符串返回。所以我的阵列已经#34;言语像无尽的雨水一样流出纸杯#34;我试图让他们成为cuppaperainto ......等等。这是我的代码,但它在list.size和list.listIterator上给了我一个符号未找到的错误。只是想知道我做错了什么以及如何解决这个问题。
public class LabListIterators {
public static void main(String[] args) {
List<String> list = new LinkedList<String>();
// Add items to the List
String [] array = {"Words", "are", "flowing", "out", "like", "endless", "rain", "into", "a", "paper", "cup"};
for (int i = 0; i < array.length; ++i)
list.add (array[i]);
System.out.println(list + ", size = " + list.size());
capitalize(list);
System.out.println(list);
System.out.println(concatenateBackwards(list));
}
public static String concatenateBackwards(List<String> words)
{
ListIterator iter = list.listIterator(list.size());
while (iter.hasPrevious())
{
String str = iter.previous() + str;
}
return str;
}
}
答案 0 :(得分:1)
你刚才从这个代码块中得到了名称和范围的混合
public static String concatenateBackwards(List<String> words)
{
ListIterator iter = list.listIterator(list.size());
while (iter.hasPrevious())
{
String str = iter.previous() + str;
}
return str;
}
该方法接收List<String> words
,但您尝试在{(1}}上调用listIterator()
,我认为您在main()方法中创建时想要使用该对象list
在while循环中:
String str = iter.previous() + str;
您必须先声明str才能使用它。因此,在str
循环之前移动while
声明。此外,return str;
不知道tr
的范围,因为它是在while循环体内声明的。
解决方案:
public static String concatenateBackwards(List<String> words)
{
String str = "";
ListIterator iter = words.listIterator(list.size());
while (iter.hasPrevious())
{
str += iter.previous();
}
return str;
}
答案 1 :(得分:0)
您在循环中声明了字符串
while (iter.hasPrevious())
{
String str = iter.previous() + str;
}
return str;
尝试
String str ="";
while (iter.hasPrevious())
{
str = iter.previous() + str;
}
return str;