FileDocCategorySizeDatePackage
Rot13Input.javaAPI DocExample2419Sat Jan 24 10:44:24 GMT 2004je3.basics

Rot13Input

public class Rot13Input extends Object
This program reads lines of text from the user, encodes them using the trivial "Rot13" substitution cipher, and then prints out the encoded lines.

Fields Summary
Constructors Summary
Methods Summary
public static voidmain(java.lang.String[] args)

        // Get set up to read lines of text from the user
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        for(;;) {                                    // Loop forever
            System.out.print("> ");                    // Print a prompt
            String line = in.readLine();               // Read a line
            if ((line == null) || line.equals("quit")) // If EOF or "quit"...
                break;                                 // ...break out of loop
            StringBuffer buf = new StringBuffer(line); // Use a StringBuffer
            for(int i = 0; i < buf.length(); i++)      // For each character...
                buf.setCharAt(i, rot13(buf.charAt(i)));// ..read, encode, store
            System.out.println(buf);                   // Print encoded line
        }
    
public static charrot13(char c)
This method performs the Rot13 substitution cipher. It "rotates" each letter 13 places through the alphabet. Since the Latin alphabet has 26 letters, this method both encodes and decodes.

        if ((c >= 'A") && (c <= 'Z")) {  // For uppercase letters
            c += 13;                       // Rotate forward 13
            if (c > 'Z") c -= 26;          // And subtract 26 if necessary
        }
        if ((c >= 'a") && (c <= 'z")) {  // Do the same for lowercase letters
            c += 13;
            if (c > 'z") c -= 26;
        }
        return c;                        // Return the modified letter