1

弦楽回文を練習しています。私のコードは for ループに入っていますか?

public static void main (String args[]) 
{
    String word = JOptionPane.showInputDialog("Input a String:");
    String finalword = word.replaceAll(" ","").toLowerCase();

    for (int x = word.length(); x >= word.length()-1; x--) 
    {
        finalword.charAt(x);
    }

    if(word.equals(finalword)) 
    {
        JOptionPane.showMessageDialog(null, "Palindrome");
    }
    else 
    {
        JOptionPane.showMessageDialog(null, "Not a Palindrome");
    }
}    

ありがとうございます。よろしくお願いします。

4

3 に答える 3

2
  1. 作業する必要がある実際の文字列は、その長さが重要であるため、finalword です。

  2. 簡単にするために、tempStart と tempLast のような 2 つの一時配列を使用します。どちらも (finalword.length /2) と同じ長さである必要があります。文字列の文字数が偶数または奇数であることを心配する必要はありません。

  3. 次のように、2 つの変数で for ループを使用します。

     for(int x = 0, y=finalword.length(); x<finalword.length() / 2; x++,y--){
       // check tempStart and tempLast has same chars.
       // I hope you know rule for palindrome.
     }
    
  4. これらの両方の配列 (tempStart と tempLast) が一致する場合、その回文は一致しません。

これがお役に立てば幸いです。そうでない場合は、これを行っている間にさらに助けが必要であることをお知らせください。

于 2012-12-18T01:17:09.060 に答える
2

x を開始すると、値は単語の長さになります。そのはず

int x = word.length() -1

于 2012-12-18T00:20:46.917 に答える
0

int x = word.length(); 文字の配列の長さ、つまり

"Racecar".length();
// 7

次に、配列[7]になる配列ですが、実際には6が必要です

于 2012-12-18T00:21:14.343 に答える