import java.util.*; import java.io.*; public class Cipher{ public String encode(String s, int n){ String u="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String l="abcdefghijklmnopqrstuvwxyz"; for (int i=0;i<s.length();i++){ //Below will lowercase the string if (u.indexOf(s.substring(i,i+1))!=-1){ String a=""; int q=u.indexOf(s.substring(i,i+1)); a=s.substring(0,i)+l.substring(q,q+1)+s.substring(i+1); s=a;} //Below will encode the string String a=""; if (l.indexOf(s.substring(i,i+1))!=-1){ a=s.substring(0,i); int q=(l.indexOf(s.substring(i,i+1))+n)%26; a=a+l.substring(q,q+1)+s.substring(i+1); s=a;} } return s; } private double[] CorpusFreqs=new double[26]; private void buildCorpusFreq(String filename){ int q=0; try{ Scanner sc=new Scanner (new File(filename)); while (sc.hasNext()){ String s =sc.nextLine(); s=s.toLowerCase(); for (int i=0;i<s.length();i++){ char c=s.charAt(i); if (c>='a' && c<='z'){ CorpusFreqs[c-'a']=CorpusFreqs[c-'a']+1; q=q+1;} } } } catch (Exception e) {System.out.println(e);} for (int i=0;i<CorpusFreqs.length;i++){ CorpusFreqs[i]=CorpusFreqs[i]/q;} System.out.println(Arrays.toString(CorpusFreqs)); } public static void main(String[] args){ Cipher c=new Cipher(); System.out.println(c.encode("hello",3)); System.out.println(c.encode("abcxyz",3)); System.out.println(c.encode("hi there!",1)); System.out.println(c.encode("HI THERE!",1)); c.buildCorpusFreq("The Mechanical Properties of Wood by Samuel J. Record.txt"); } }