import java.util.*; public class Program3{ String text, key; //main method public static void main(String[] args) { //variables String strIn, codeIn, strOut, methodChoice; Scanner in = new Scanner(System.in); System.out.print("Enter the text for coding: "); strIn = in.nextLine(); System.out.print("Enter the key "); codeIn = in.nextLine(); Program3 sa = new Program3(strIn,codeIn); System.out.print("Would you like to encode or decode? "); methodChoice = in.next(); if(methodChoice.equals("encode") || methodChoice.equals ("Encode") || methodChoice.equals("ENCODE")){ System.out.println("Encoding..."); strOut = sa.encode(sa.text, sa.key); } else if(methodChoice.equals("decode") || methodChoice.equals ("Decode") || methodChoice.equals("DECODE")){ System.out.println("Decoding..."); strOut = sa.decode(sa.text, sa.key); } else{ System.out.println("Error. Invalid input."); strOut = "No coding work performed due to error."; } System.out.println("Resulting text is "+strOut); } //constructor public Program3(String inString, String n){ text = inString; key = n; } public String encode(String str, String n){ int size = str.length(); StringBuilder sb = new StringBuilder(str); for(int index = 0; index < size; index++){ char letter = sb.charAt(index); if(letter == 'a' || letter == 'A' || letter == 'e' || letter == 'E' || letter == 'i' || letter == 'I'){ sb.insert(index,n); index += n.length(); size += n.length(); } if(letter == 'o' || letter == 'O' || letter == 'u' || letter == 'U'){ sb.insert(index,"foo"); index += 3; size += 3; } } return sb.toString(); } public String decode(String str, String n){ int size = str.length(); StringBuilder sb = new StringBuilder(str); for(int index = 0; index < size; index++){ char letter = sb.charAt(index); if(letter == 'a' || letter == 'A' || letter == 'e' || letter == 'E' || letter == 'i' || letter == 'I'){ } if(letter == 'o' || letter == 'O' || letter == 'u' || letter == 'U'){ sb.replace(index-3,index-1,""); index -= 3; size -= 3; } } return sb.toString(); } }