Methods used to obtain information about an object are known as accessor methods. One accessor method that you can use with strings is the
length()
method, which returns the number of characters contained in the string object. After the following two lines of code have been executed, len
equals 17:String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
A palindrome is a word or sentence that is symmetric—it is spelled the same forward and backward, ignoring case and punctuation. Here is a short and inefficient program to reverse a palindrome string. It invokes the
String
method charAt(i)
, which returns the ith character in the string, counting from 0.public class StringDemo {
public static void main(String[] args) {
String palindrome = "Dot saw I was Tod";
int len = palindrome.length();
char[] tempCharArray = new char[len];
char[] charArray = new char[len];
// put original string in an
// array of chars
for (int i = 0; i < len; i++) {
tempCharArray[i] =
palindrome.charAt(i);
}
// reverse array of chars
for (int j = 0; j < len; j++) {
charArray[j] =
tempCharArray[len - 1 - j];
}
String reversePalindrome =
new String(charArray);
System.out.println(reversePalindrome);
}
}
Running the program produces this output:
doT saw I was toD
To accomplish the string reversal, the program had to convert the string to an array of characters (first
for
loop), reverse the array into a second array (second for
loop), and then convert back to a string. The String
class includes a method, getChars()
, to convert a string, or a portion of a string, into an array of characters so we could replace the first for
loop in the program above withpalindrome.getChars(0, len, tempCharArray, 0);