2013-11-09 49 views
-1
import java.util.Stack; 

public class PalindromeTest { 

    public static void main(String[] args) { 

     String input = "test"; 
     Stack<Character> stack = new Stack<Character>(); 

     for (int i = 0; i < input.length(); i++) { 
      stack.push(input.charAt(i)); 
     } 

     String reverseInput = ""; 

     while (!stack.isEmpty()) { 
      reverseInput += stack.pop(); 
     } 

     if (input.equals(reverseInput)) 
      System.out.println("Yo! that is a palindrome."); 
     else 
      System.out.println("No! that isn't a palindrome."); 

    } 
} 

在上面的程序中是什麼目的: reverseInput + = stack.pop();
當你分配時發生了什麼,這個.i與這條線混淆,可以任何一個解釋?想知道使用

回答

0

它只是刪除堆棧的最頂端字符,並將其附加到字符串reverseInput使用Java的通常字符串連接。因爲它在該循環內部,所以它將刪除字符,直到堆棧爲空。這實際上是反轉輸入字符串(原始字符的第一個字符是堆棧中最底部的字符,所以它是反轉字符串的最後一個字符)。

See java.util.Stack JavaDoc here.