Home
Java
ROT13 Method
This page was last reviewed on Jun 1, 2023.
Dot Net Perls
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.
Array
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.
This page was last updated on Jun 1, 2023 (edit).
Home
Changes
© 2007-2024 Sam Allen.