2010-08-06 75 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

相关问题