したがって、プログラムのオブジェクトはタイトルにあります。私はモールスコードに英語を変換することに成功しましたが、逆の方法は困難であることが証明されています。私はフォーラム全体を見てきて、ここで私の問題を解決することができませんでした。それは変換することができるようだ、それはモールス符号の最後の文字を変換するだけです。私はまた、スペースを使ってお互いの単語を区別する方法を考え出すこともできません。どんな助けでも大歓迎です。モールスから英語へ
/******
* This program will prompt the user to specify the desired type of translation,
* input a string of Morse code characters or English characters,
* then display the translated results
*
* Pre-Conditions:
*
* Post-Conditions:
*
* @author: PC
******/
import java.util.Scanner;
import java.util.Arrays;
public class MorseCode
{
public static void main(String [] args)
{
Scanner input = new Scanner(System.in);
String userInput;
System.out.println("This is a Translator.");
System.out.println("Would you like to translate sentence to Morse code or English? (MC or E):");
String choice = input.nextLine();
choice = choice.toLowerCase();
if(choice.equals("e")){
System.out.println("Enter sentence (puncuation not needed):");
userInput = input.nextLine();
userInput = userInput.toLowerCase();
String [] morseWords = userInput.split(" ");
convertToEnglish(morseWords);
}
else if(choice.equals("mc")){
System.out.println("Enter sentence (puncuation not needed):");
userInput = input.nextLine();
convertToMorse(userInput);
}
}
public static void convertToMorse(String text)
{
int i, j;
String [] morseAns = new String[text.length()];
text = text.toLowerCase();
String alphabet = ("abcdefghijklmnopqrstuvwxyz1234567890 ");
String [] morse = new String[] { ".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--",
"-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..",
".----","..---","...--","....-",".....","-....","--...","---..","----.","-----", "|" };
char selectedChar, convertedChar, alphabetChar;
for(i = 0; i < text.length(); i++)
{
selectedChar = text.charAt(i);
for(j = 0; j < alphabet.length(); j++)
{
alphabetChar = alphabet.charAt(j);
if(selectedChar == alphabetChar)
{
morseAns[i] = morse[j];
}
}
}
for(i = 0; i < text.length(); i++)
{
System.out.print(morseAns[i] + " ");
}
}
public static void convertToEnglish(String [] multiMorseWords)
{
int i, j;
String multipleMorseWords;
String alphabet = ("abcdefghijklmnopqrstuvwxyz1234567890 ");
String [] morse = new String[] { ".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--",
"-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--..",
".----","..---","...--","....-",".....","-....","--...","---..","----.","-----", "|" };
char [] englishAns = new char[multiMorseWords.length];
for(i = 0; i < multiMorseWords.length; i++)
{
multipleMorseWords = multiMorseWords[i];
String [] morseChars = multipleMorseWords.split(" ");
for(j = 0; j < morseChars.length; j++)
{
if(morseChars[j].equals(morse[j]))
{
englishAns[i] = alphabet.charAt(j);
}
}
}
for(i = 0; i < multiMorseWords.length; i++)
{
System.out.println(englishAns[i]);
}
}
}
[Javaの持つ英語のテキストにモールス符号変換]の可能複製(http://stackoverflow.com/questions/29572916/converting-morse-code-to-english-text-:ここに私の改定方法であり、 with-java) –
現在の出力が目的の出力と一致せず、その理由がわからない場合は、デバッグを開始します。これについてどうやって行くのかわからない場合は、[小さなプログラムをデバッグする方法]を見てください。(http://ericlippert.com/2014/03/05/how-to-debug-small-プログラム/)。あなたの直接の問題を解決することはできませんが、あなた自身が解決するのに役立つ手順を教えてくれます。それでも問題が解決できない場合でも、質問をすることができます。より集中的で簡単に答えることができます。 –