ROT13. There are 26 letters in the alphabet. With ROT13, a cipher, we rotate the first 13 with the last 13. This obscures, but does not encrypt, text data.
A String is immutable: it cannot be changed. To modify a String with the ROT13 algorithm in Java we must first convert it to a character array. Then we convert it back to a String.
A method. We introduce an example method. In rot13() we see the character-testing logic. Characters before the middle letter M are rotated backwards, and other are rotated forwards.
Start We pass our character array to the String constructor to convert it back into a String.
Here We rotate a String, and then rotate the rotated string to see if it correctly round-trips (it does).
public class Program {
public static String rot13(String value) {
char[] values = value.toCharArray();
for (int i = 0; i < values.length; i++) {
char letter = values[i];
if (letter >= 'a' && letter <= 'z') {
// Rotate lowercase letters.
if (letter > 'm') {
letter -= 13;
} else {
letter += 13;
}
} else if (letter >= 'A' && letter <= 'Z') {
// Rotate uppercase letters.
if (letter > 'M') {
letter -= 13;
} else {
letter += 13;
}
}
values[i] = letter;
}
// Convert array to a new String.
return new String(values);
}
public static void main(String[] args) {
// Rotate the input string.// ... Then rotate the rotated string.
String input = "Do you have any cat pictures?";
String rot13 = rot13(input);
String roundTrip = rot13(rot13);
System.out.println(input);
System.out.println(rot13);
System.out.println(roundTrip);
}
}Do you have any cat pictures?
Qb lbh unir nal png cvpgherf?
Do you have any cat pictures?
For punctuation and spaces, no changes are made. Most text remains in a recognizable form, so it is easy to detect ROT13. The algorithm is usually just a learning exercise.
Occasionally, if you want to make text not easily read, using ROT13 is helpful. A sophisticated computer user can decode ROT13, but many users are not sophisticated or don't care.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.