public class AffinLin { String toChipher = null; int a = 1, b = 0; public AffinLin (int a, int b, String toChipher) { this.a = a; this.b = b; this.toChipher = toChipher; System.out.println (toChipher); for (int i = 0; i < toChipher.length (); ++i) System.out.print (chipherChar (a, b, toChipher.charAt (i))); System.out.print ("\n"); } private char chipherChar (int a, int b, char character) { int returnValue = ((int)character); returnValue -= ((int)'a'); returnValue = ((a * returnValue) + b) % 26; returnValue += ((int)'a'); return ((char)returnValue); } public static void main (String args []) { int a = 1; int b = 0; if (args.length != 3) { System.out.println ("Usage java AffinLin a b Text"); System.exit (1); } if (args [2].matches (".*[^a-z].*")) { System.out.println ("Sorry Text to Chipher are not allowed to contain any characters except [a-z]"); System.exit (1); } try { a = Integer.parseInt (args[0]); } catch (NumberFormatException nfexcp) { System.out.println ("a was not a number but: "+a); System.exit (1); } try { b = Integer.parseInt (args[1]); } catch (NumberFormatException nfexcp) { System.out.println ("b was not a number but: "+b); System.exit (1); } new AffinLin (a, b, args [2]); } }