Note: For such String problems, analyze the problem as a array of characters and not as a String.
/**
* Check if given string is palindrome.
*
* @param str
* @return
*/
public static Boolean palindromeAlgo(String str) {
boolean res = true;
for (int i = 0, j = str.length() - 1; i < j; i++, j--) {
if (str.charAt(i) != str.charAt(j)) {
res = false;
break;
}
}
return res;
}
/**
* Convert string to lower case and then check for palindrome.
* @param str
* @return
*/
public static String convertToLowerCase(String str) {
StringBuilder res = new StringBuilder();
for (char c : str.toCharArray()) {
// if upper case convert to lowercase
if (c >= 'A' && c <= 'Z') {
res.append((char) (c + ('a' - 'A')));
} else {
res.append(c);
}
}
return res.toString();
}
/**
* Remove non alphabet chars from string.
*/
public static final String removeSpecialCharacters(String str) {
String s = str;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
// If not an alphabet
if (c < 'A' || c > 'Z' && c < 'a' || c > 'z') {
s = s.substring(0, i) + s.substring(i + 1);
i--;
}
}
return s;
}