2
public static void main(String[] args) {
    String input = new String(JOptionPane.showInputDialog("Enter a string."));
    String inputLow = input.toLowerCase();

    String output = "";     //Blank string
    for(int i = 0; i < inputLow.length(); i++)  //For loop to continue through the entered string
    {
        if(inputLow.charAt(i) >= 'a' && inputLow.charAt(i) <= 'z')  //If statement to check for appropriate characters only
        {
            output += inputLow.charAt(i);   //Add only the appropriate characters to String output ('a' - 'z')
        }
    }
    System.out.println(output);

    //GETTING REVERSE STRING
    int n = output.length() - 1;
    String last = "";
    for(int k = n; k >= 0; k--)
    {
        System.out.print(output.charAt(k));
        //last = String.valueOf(output.charAt(k));
    }
    //System.out.println("");
//System.out.println(last);
}

そのため、最後に文字列を出力しようとしましたが、そのコードのコメントを外すと、次のように出力されます。

heyman
namyeh
h

しかし、3行目に「ヘイマン」を印刷したいのです。(私は print ステートメントを実行して、それが正しく行われているかどうかをテストするだけです。私の目標は、最後に文字列を文字列出力と比較することです。それらが同じ場合は回文であり、そうでない場合はそうではありません。)

具体的にこの方法(またはそれに似たもの)でこれを行うにはどうすればよいですか?

4

1 に答える 1

1

last の値を一度に 1 文字に設定しています。基本的に毎回リセットしているため、逆文字列の最後の文字 (最初の文字) で終了します。

に変更しますlast = String.valueOf(output.charAt(k)) + last;

于 2014-04-14T15:51:03.247 に答える