-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 はこの行と混同します、誰か説明できますか??

4

1 に答える 1

0

スタックの最上位の文字を単純に削除し、reverseInputJava の通常の文字列連結を使用して文字列に追加します。そのループ内にあるため、スタックが空になるまで文字を削除します。これが実際に入力文字列を反転させるものです (元の最初の文字はスタックの一番下にあるため、反転された文字列の最後の文字です)。

ここで java.util.Stack JavaDoc を参照してください。

于 2013-11-09T12:58:22.860 に答える