2014-08-30 3 views
1

String 배열을 인수로 받아들이는 isPalindrome 메서드를 작성하고 해당 배열이 회귀 식이면 역순으로 동일한 전방을 읽는 경우 true를 반환하고 if 아니. 예를 들어 배열 { "alpha", "beta", "gamma", "delta", "gamma", "beta", "alpha"}는 회문이므로 배열에 메서드를 전달하면 true를 반환합니다. 0 또는 하나의 요소를 가진 배열은 문장으로 간주됩니다.문자열 배열의 palindrome에 대해이 코드가 잘못되었습니다.

public boolean isPalindrome(String[] str){ 
     for (int i =0;i<str.length;i++){ 
      if (str[i]!=str[str.length-1-i]) 
       return false; 
     } 
    return true; 
    } 

실습 웹 사이트 답변에 따라 입력에 실패합니다.

isPalindrome ({ "AAY", "벌", "시", "시", "벌", "AAY"})

isPalindrome ({ "AAY", "벌", "시" "혼", "벌", "AAY은"})

+0

대답했다 그것으로 comparation에 등호를 사용하는 것 외에도, 당신은 * 내가 sergioFC

+0

[Java의 문자열을 어떻게 비교합니까?] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

+0

'str [i] .equals (str [str.length-1-i])' – Nivedita

답변

2

strString의 배열입니다.

String의 값을 비교하려면 String.equals을 사용해야합니다. == 연산자는 값 자체가 아닌 문자열의 ID를 비교합니다.

public boolean isPalindrome(String[] str){ for (int i=0;i<str.length;i++){ if (!str[i].equals(str[str.length - i - 1])) return false; } return true; }

2

자바 문자열은 !=으로 comapring하면 값이 아닌 참조를 비교합니다. 가치 비교를 위해서는 String.equals 방법을 사용해야합니다.

2

이 코드가 개체 식별 비교를 수행 ==를 사용하여 문자열을 비교한다. 콘텐츠 평등을 확인하려면 string1.equals(string2)을 사용하여 문자열을 비교해야합니다.

두 문자열이 동일하지만 같지 않으므로 입력 isPalindrome({"a", "aa".substring(1)})에 대한 메서드가 실패합니다.

자세한 내용은 더 많은 예제가 들어있는 How do I compare strings in Java?을 확인하십시오.

2

대신 if (!str[i].equals(str[str.length-1-i]))

관련 문제