Java ROT13 Method

This Java article implements the ROT13 cipher. ROT13 is a simple method that rotates characters in the alphabet to obscure text.
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.

String constructor: We pass our character array to the String constructor to convert it back into a String.

Arrays

Main: Here we rotate a String, and then rotate the rotated string to see if it correctly round-trips (it does).

Java program that uses ROT13 cipher 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); } } Output 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.
© 2007-2019 Sam Allen. Every person is special and unique. Send bug reports to info@dotnetperls.com.
HomeSearch
Home
Dot Net Perls