2014-04-17 3 views
0

숫자 또는 단어가 회문 인 경우를 비교하는 간단한 프로그램을 만들려고합니다. 필자는 다음 코드를 만들었지 만 if 문이 작동하지 않는 이유는 알지 못합니다. 결과를 인쇄하면 숫자 나 글자는 같지만 if 문은 그렇게 생각하지 않는다는 것을 알 수 있습니다. 여기 내 코드가있다. 감사합니다 : 당신이 대신 문자열을 비교했기 때문에회문이 작동하지 않는지 확인하십시오.

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

감사합니다. .equals()를 사용했고 효과가있었습니다 !!! – Kevjumba94

답변

0

확인하려면 실제 숫자.

0

당신이 하나

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

그게 전부에 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

StringBuilder에서 reverse 메서드를 사용하여이 작업을 수행 할 수 있습니다.

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