2016-03-20 11 views
0

私がやっていることは、私が持っているリストを取り出して最後から始めることです。そこから私は後方に移動し、リストをStringとして返す必要があります。だから私の配列には "言葉が無限の雨のように紙カップに流出している"ということがあります。私はそれらをcuppaperaintoにしようとしています...など。これは私のコードですが、私のlist.sizeとlist.listIteratorにシンボルが見つかりませんでした。ちょうど私が間違ってやっていることと、この問題を解決する方法が不思議です。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; 
} 
} 

答えて

1

while (iter.hasPrevious()) 
    { 
    String str = iter.previous() + str; 
    } 
    return str; 

お試しください。ループ内の文字列と、このコードブロックから少し混ぜスコープを宣言している

public static String concatenateBackwards(List<String> words) 
{ 
    ListIterator iter = list.listIterator(list.size()); 
    while (iter.hasPrevious()) 
    { 
    String str = iter.previous() + str; 
    } 
    return str; 
} 
  1. このメソッドはList<String> wordsを受け取りますが、listlistIterator()を呼び出すと、main()メソッド内で作成したときに使用したかったと思います。 whileループ内

  2. String str = iter.previous() + str; 
    

    あなたは、あなたがそれを使用することができます前に、最初の列strを宣言しなければなりません。そのため、whileループの前にstr宣言を移動してください。また、return str;は、whileループ本体内で宣言されているため、trのスコープについてはわかりません。

ソリューション:

public static String concatenateBackwards(List<String> words) 
{ 
    String str = ""; 
    ListIterator iter = words.listIterator(list.size()); 
    while (iter.hasPrevious()) 
    { 
    str += iter.previous(); 
    } 
    return str; 
} 
0

あなたはあなただけの名前を得た

String str =""; 
    while (iter.hasPrevious()) 
    { 
    str = iter.previous() + str; 
    } 
    return str; 
関連する問題