2016-08-06 203 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

谢谢。现在正在工作。 –