Here is a code I have for java. The code should prompt the user for a choice between Morse code and English, then prompt them to enter either language string and then produce the translation. It compiles on my machine. In the past is has run correctly and sometimes it hasn't. Can someone else try and run it for me and just tell me if it works? If not can you point me to the error in my code that is producing the runtime error? Thanks. (P.S. this code uses Input.class)
public class MorseCodeJavaProgram
{
public static void morse( String s3 )
{
int letters [ ] = new int [ 26 ];
for ( int num = 0; num < s3.length(); num++ )
{
switch ( s3.charAt( num ) )
{
case 'a':
System.out.print( ".- ");
break;
case 'b':
System.out.print( "-… ");
break;
case 'c':
System.out.print( "-.-. ");
break;
case 'd':
System.out.print( "-.. ");
break;
case 'e':
System.out.print( ". ");
break;
case 'f':
System.out.print( "..-. ");
break;
case 'g':
System.out.print( "--. ");
break;
case 'h':
System.out.print( "…. ");
break;
case 'i':
System.out.print( ".. ");
break;
case 'j':
System.out.print( ".--- ");
break;
case 'k':
System.out.print( "-.- ");
break;
case 'l':
System.out.print( ".-.. ");
break;
case 'm':
System.out.print( "-- ");
break;
case 'n':
System.out.print( "-. ");
break;
case 'o':
System.out.print( "--- ");
break;
case 'p':
System.out.print( ".--. ");
break;
case 'q':
System.out.print( "--.- ");
break;
case 'r':
System.out.print( ".-. ");
break;
case 's':
System.out.print( "... ");
break;
case 't':
System.out.print( "- ");
break;
case 'u':
System.out.print( "..- ");
break;
case 'v':
System.out.print( "...- ");
break;
case 'w':
System.out.print( ".-- ");
break;
case 'x':
System.out.print( "-..- ");
break;
case 'y':
System.out.print( "-.-- ");
break;
case 'z':
System.out.print( "--.. ");
break;
case ' ':
System.out.print( " | ");
break;
}
}
}
public static void toEnglish( String s1 )
{
String english [ ] = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "x", "y", "z", " " };
String morse [ ] = { ".- ", "-... ", "-.-. ", "-.. ", ". ", "..-. ", "--. ", "…. ", ".. ", ".--- ", "-.- ", ".-.. ", "-- ", "-. ", "--- ", ".--. ", "--.- ", ".-. ", "... ", "- ", "..- ", "...- ", ".-- ", "-..- ", "-.-- ", "--.. ", "| " };
for ( int num = 0; num < s1.length(); num++ )
{
if ( s1.charAt ( num ) == ' ')
{
for ( int num2 = num; num2 < s1.length(); num2++ )
{
if ( s1.charAt ( num2++ ) == ' ')
{
for ( int num3 = 0; num < 26; num3++ )
{
if ( s1.substring( num++, num2 + 2 ) == ( morse [ num3 ] ))
{
System.out.print( english [ num3 ] );
}
}
}
}
}
}
}
public static void main( String [] args)
{
System.out.println("Begin Program");
String s2 = Input.getString( "To Morse or From Morse" );
if ("From Morse".equals(s2) ){
String s1 = Input.getString( "Please type a phrase in English" );
toEnglish( " " + s1 + " " );
}
if ("To Morse".equals(s2) )
{
String s3 = Input.getString( "Please type a phrase in Morse Code" );
morse( s3 );
}
}
}
Aucun commentaire:
Enregistrer un commentaire