How do you test if a given String is a palindrome in Java, without using any methods that do it all for me?
- 7The community really isn't here to just give you complete code. Show us what you've tried and we will help you. Also this sounds like homework to me, but I'm not going to tag it yet.Neil Aitken– Neil Aitken2010-08-06 06:38:21 +00:00Commented Aug 6, 2010 at 6:38
- What does it mean "without using APIs?" If it means what I think it means, then this problem is impossible.emory– emory2010-08-06 10:46:06 +00:00Commented Aug 6, 2010 at 10:46
Add a comment |
5 Answers
String palindrome = "..." // from elsewhere boolean isPalindrome = palindrome.equals(new StringBuilder(palindrome).reverse().toString()); 1 Comment
Jesper
I guess that "without using API'S" means: without using for example
StringBuilder.reverse().Noel's solution is actually better. But if it's for homework, you might want to do this:
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; } Comments
Java in-place palindrome check:
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; } Comments
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 Comment
Grisha Weintraub
-1 Exactly the same answer as Noel's.