Home
Map
ROT13 MethodImplement the ROT13 cipher. ROT13 is a simple method that rotates characters in the alphabet to obscure text.
Java
This page was last reviewed on Jun 1, 2023.
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.