2016-08-06 242 views
0
import java.util.ArrayList; 
import java.util.ListIterator; 
import java.util.Scanner; 
import java.util.StringTokenizer; 

public class N12 { 
    public String reverseWords(String s) { 

    String value = ""; 
    ArrayList list = new ArrayList(); 
    StringTokenizer st = new StringTokenizer(s); 
    StringBuilder sb = new StringBuilder(); 

    while (st.hasMoreTokens()) { 
     list.add(st.nextToken()); 
    } 


    ListIterator lt = list.listIterator(); 

    while (lt.hasPrevious()) { 
     String t = (String) lt.previous(); 
     System.out.println(t); 
     sb.append(t); 
    } 
    value = sb.toString(); 
    return value; 
} 

public static void main(String ss[]) { 
    N12 sol = new N12(); 
    Scanner scan = new Scanner(System.in); 

    String s1 = scan.nextLine(); 

    System.out.println(sol.reverseWords(s1)); 
} 

}字符串操作

的不合宜的輸出我想要扭轉字符串作爲一字一句。我得到了字符串並使用StringTokenizer存儲它。爲了從最後一個字中反轉字符串,我使用了ListIterator的hasPrevious()和previous()方法。它什麼都沒顯示。如果我使用hasNext()和next()來代替它,它就可以正常工作。

(例如) 輸入:
我回來

輸出:
回我是

回答

2

不能使用hasPreviews(),因爲你開始在列表的開頭。你需要從頭開始。 嘗試使用:

ListIterator lt = list.listIterator(list.size()); 
+0

謝謝。現在正在工作。 –