2010-08-06 51 views
-6

如何測試給定的字符串是否是Java中的迴文,而不使用任何方法爲我完成這一切?如何確定字符串是迴文?

+7

的社會真的是不是在這裏只是給你完整的代碼。告訴我們你已經嘗試了什麼,我們會幫助你。 此外,這聽起來像是我的功課,但我不打算標記它。 – 2010-08-06 06:38:21

+0

這是什麼意思「不使用API​​?」如果這意味着我認爲的意思,那麼這個問題是不可能的。 – emory 2010-08-06 10:46:06

回答

6
String palindrome = "..." // from elsewhere 
boolean isPalindrome = palindrome.equals(new StringBuilder(palindrome).reverse().toString()); 
+1

我想,「不使用API​​的」意味着:不使用例如'StringBuilder.reverse()'。 – Jesper 2010-08-06 13:07:30

0

諾埃爾的解決方案實際上更好。但如果它是家庭作業,你可能會想這樣做:

public static boolean isPalindrome(String word) { 
    int left = 0; 
    int right = word.length() -1; 

    while (left < right) { 
     if (word.charAt(left) != word.charAt(right)) 
      return false; 

     left++; 
     right--; 
    } 

    return true; 
} 
5
public boolean checkPalindrome(string word){ 

for(int i=0 ; i < word.length()/2;i++) 
{ 
    if(word.charAt(i) ! = word.charAt(word.length()-1-i)) 

     return false; 
} 

return true; 
} 
0

的Java就地迴文檢查:

public static final boolean isPalindromeInPlace(String string) { 
    char[] array = string.toCharArray(); 
    int length = array.length-1; 
    int half = Math.round(array.length/2); 
    char a,b; 
    for (int i=length; i>=half; i--) { 
     a = array[length-i]; 
     b = array[i]; 
     if (a != b) return false; 
    } 
    return true; 
} 
-2
String str="iai"; 

StringBuffer sb=new StringBuffer(str); 
String str1=sb.reverse().toString(); 
if(str.equals(str1)){ 
    System.out.println("polindrom"); 
} else { 
    System.out.println("not polidrom"); 
} 
+1

-1與Noel's完全相同的答案。 – 2012-10-21 08:25:37

相關問題