Answer to Uncoded Line Question
On Monday the question was to write a program to calculate what the encoded line would be for:
it was a dark and stormy night
which encodes into:
xv fpu p iphs pwi uvdhnk wxcov
The program needed to take in a line of text from the user, use a combination of a for-each loop and switch statement, and finally display the encoded line. The goal was to highlight how useful the for-each loop is when you need to iterate through an entire collection (e.g., a char array). Here's my version:
import java.util.Scanner;
public class Encoder {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter in text to be encoded: ");
String codedText = input.nextLine();
codedText = codedText.toLowerCase();
char letters[] = codedText.toCharArray();
char encodedletter = ' ';
for (char uncodedLetter:letters)
{
switch(uncodedLetter)
{
case 'z':
encodedletter = 'a';
break;
case 'j':
encodedletter = 'b';
break;
case 'g':
encodedletter = 'c';
break;
case 'o':
encodedletter = 'd';
break;
case 'p':
encodedletter = 'e';
break;
case 'w':
encodedletter = 'f';
break;
case 'f':
encodedletter = 'g';
break;
case 'r':
encodedletter = 'h';
break;
case 'd':
encodedletter = 'i';
break;
case 'c':
encodedletter = 'j';
break;
case 'y':
encodedletter = 'k';
break;
case 'u':
encodedletter = 'l';
break;
case 'q':
encodedletter = 'm';
break;
case 'm':
encodedletter = 'n';
break;
case 'h':
encodedletter = 'o';
break;
case 'a':
encodedletter = 'p';
break;
case 'x':
encodedletter = 'q';
break;
case 'b':
encodedletter = 'r';
break;
case 'k':
encodedletter = 's';
break;
case 'e':
encodedletter = 't';
break;
case 's':
encodedletter = 'u';
break;
case 't':
encodedletter = 'v';
break;
case 'n':
encodedletter = 'w';
break;
case 'i':
encodedletter = 'x';
break;
case 'l':
encodedletter = 'y';
break;
case 'v':
encodedletter = 'z';
break;
default:
encodedletter = uncodedLetter;
break;
}
System.out.print(encodedletter);
}
}
}


No comments yet. Leave a Comment