在回文中循环

时间:2012-12-18 00:15:58

标签: java loops for-loop

我正在练习一个字符串回文。我的代码是否在我的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");
    }
}    

谢谢你,并致以最诚挚的问候。

3 个答案:

答案 0 :(得分:2)

当你启动x时,该值将是单词的长度。它应该是

int x = word.length() - 1

答案 1 :(得分:2)

  1. 您需要处理的实际字符串是finalword,因为它的长度对您很重要。

  2. 为简单起见,请使用两个临时数组,如tempStart和tempLast,两者的长度必须与(finalword.length / 2)相同,不要担心字符串有偶数或奇数个字符。

  3. 使用带有两个变量的循环,如下所示。

     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)匹配,则其匹配,否则不匹配。

  5. 我希望这会对你有所帮助。如果不这样做,请告诉我你需要更多的帮助。

答案 2 :(得分:0)

int x = word.length(); 会给你字符数组的长度,即

"Racecar".length();
// 7

然后在数组[7]中,但你真的想要6