import static java.lang.Character.isLowerCase; import static java.lang.Character.isUpperCase; import static java.lang.Character.toLowerCase; public class ROT13 { Character cs; Character cf; ROT13(Character cs, Character cf) { this.cs= cs; this.cf=cf; } ROT13() { this.cs='a'; this.cf='m'; } public String crypt(String text) throws UnsupportedOperationException { return encrypt(encrypt(text)); } public String encrypt(String text) { String result = ""; int rotator = cf-cs; boolean isUppercase = false; for(int i=0; i122){ } else if(temp+rotator < 122){ temp = (int)text.charAt(i)+rotator; } else { temp = 96 + ((temp+rotator)-122); } if(isUppercase){temp=Character.toUpperCase(temp);} result+= (char)temp; } return result; } public String decrypt(String text) { String result = ""; int rotator = cf-cs; boolean isUppercase = false; for(int i=0; i122){ } else if(temp-rotator > 97){ temp = (int)text.charAt(i)-rotator; } else { temp = 122 - (96-(temp-rotator)); } if(isUppercase){temp=Character.toUpperCase(temp);} result+= (char)temp; } return result; } public static String rotate(String s, Character c) { String result = ""; String reference = s+s; int rotator = Character.toLowerCase(c)-'a'; boolean isUppercase = false; for(int i=0; i