Re: Need Help With Project
I just edited my post incase you read it a few moments ago
Code :
import java.util.*;
public class MorseCodeProj
{
public String Conversion(String s1){
String result = "";
StringTokenizer tokens = new StringTokenizer(s1);
while(tokens.hasMoreTokens()){
String word = tokens.nextToken();
for (int i = 0; i < word.length(); i++){
switch(word.charAt(i)){
case 'A':
case 'a':
result+=".-";
break;
case 'B':
case 'b':
result+="-...";
break;
case 'C':
case 'c':
result+="-.-.";
break;
case 'D':
case 'd':
result+="-..";
break;
case 'E':
case 'e':
result+=".";
break;
case 'F':
case 'f':
result+="..-.";
break;
case 'G':
case 'g':
result+="--.";
break;
case 'H':
case 'h':
result+="....";
break;
case 'I':
case 'i':
result+="..";
break;
case 'J':
case 'j':
result+=".---";
break;
case 'K':
case 'k':
result+="-.-";
break;
case 'L':
case 'l':
result+=".-..";
break;
case 'M':
case 'm':
result+="--";
break;
case 'N':
case 'n':
result+="-.";
break;
case 'O':
case 'o':
result+="---";
break;
case 'P':
case 'p':
result+=".--.";
break;
case 'Q':
case 'q':
result+="--.-";
break;
case 'R':
case 'r':
result+=".-.";
break;
case 'S':
case 's':
result+="...";
break;
case 'T':
case 't':
result+="-";
break;
case 'U':
case 'u':
result+="..-";
break;
case 'V':
case 'v':
result+="...-";
break;
case 'W':
case 'w':
result+=".--";
break;
case 'X':
case 'x':
result+="-..-";
break;
case 'Y':
case 'y':
result+="-.--";
break;
case 'Z':
case 'z':
result+="--..";
break;
case 1 :
result+=".----";
break;
case 2 :
result+="..---";
break;
case 3 :
result+="...--";
break;
case 4 :
result+="....-";
break;
case 5 :
result+=".....";
break;
case 6 :
result+="-....";
break;
case 7 :
result+="--...";
break;
case 8 :
result+="---..";
break;
case 9 :
result+="----.";
break;
case 0 :
result+="-----";
break;
}
[B] if(tokens.hasMoreTokens())
result += " ";[/B]
//I put a space there so it adds a space in case the statement entered is multiple words?
}
}
return result;
}
public void mainMethod(){
Scanner input = new Scanner(System.in);
// No boolean variable needed.
[B] String s1;[/B]
do{
System.out.println("Enter line of characters.");
s1 = input.nextLine();
if(!s1.equalsIgnoreCase("DONE"))
System.out.println("Converted String : " + Conversion(s1));
//the If statement is there so that we do not translate the word "done" when we exit.
//WHY did you have return true here?
}while ( !s1.equalsIgnoreCase("DONE"));
//You cant test s1 before you even assigned it...replaced with do-while loop, now you can assign value to s1 BEFORE YOU TEST what it holds.
//the code now will continue asking for more till the word "done" is entered
}
}
Re: Need Help With Project
As an aside from a quick glance at the code, you may want to consider using a StringBuilder or StringBuffer for more optimal performance. Relatively speaking String concatenation can be slow, and for longer strings this difference could be noticeable.