2014-04-17 71 views
0

我試圖做一個簡單的程序,比較一個數字或單詞是否是迴文。我做了下面的代碼,但我不明白爲什麼我的if語句不起作用。如果你打印結果,你可以看到數字或字母是相同的,但我的if語句不這麼認爲。這是我的代碼。感謝:檢查迴文不工作

import java.util.*; 
public class myPalindromo 
    { 
public static void main(String[] args) 
{ 
    // TODO Auto-generated method stub 
    String number; 

    ArrayList <String> myNumber = new ArrayList <String>(); 

    Scanner sn = new Scanner(System.in); 
    number= sn.nextLine(); 

    for(int i = 0 ; i<number.length() ; i++) 
    { 
     myNumber.add(number.valueOf(number.charAt(i))); 
    } 

    for(int i = 0; i<myNumber.size(); i++) 
    { 

     System.out.println(myNumber.get(i)+"=="+myNumber.get((myNumber.size()-1)-i)); 

     if(myNumber.get(i)== myNumber.get((myNumber.size()-1)-i)) 
      System.out.println("palindrome"); 
     else 
      System.out.println("not palindrome"); 


    } 

} 

} 
+0

謝謝。我使用.equals(),它工作! – Kevjumba94

回答

0

要檢查一個字符串是否是迴文試試這個:

static boolean isPalindrome(String s) { 
    int center = (int)s.length()/2 - 1; 
    for (int i = 0; i <= center; i++) { 
     if (s.charAt(i) != s.charAt(s.length() - i-1)) 
      return false; 
    } 
    return true; 
} 
0

,則應該更換。如果聲明這一個

if(Integer.parseInt(myNumber.get(i))== Integer.parseInt(myNumber.get((myNumber.size()-1)-i))) 

那是因爲你比較字符串,而不是實際的數字。

0

您可以使用StringBuilder中的反向方法來完成此操作。

public static boolean isPalindrome(String str) { 
    return str.equals(new StringBuilder(str).reverse().toString()); 
}