Я очень новичок в программировании, и у меня возникают проблемы с пониманием циклов, когда вы не работаете с целыми числами. Я пытаюсь сделать английский в код Морзе переводчик и это было сделано до сих пор:Как закодировать эти операторы if?
import java.util.Scanner;
общественного класса EnglishToMorse {
public static void main(String[] args) {
System.out.println("Please enter text you wish to convert to Morse Code.");
Scanner sc =new Scanner(System.in);
String english = sc.next();
if (english.equalsIgnoreCase("A")){
System.out.print(".- ");
}
if (english.equalsIgnoreCase("B")){
System.out.print("-... ");
}
if (english.equalsIgnoreCase("C")){
System.out.print("-.-. ");
}
if (english.equalsIgnoreCase("D")){
System.out.print("-.. ");
}
if (english.equalsIgnoreCase("E")){
System.out.print(". ");
}
if (english.equalsIgnoreCase("F")){
System.out.print("..-. ");
}
if (english.equalsIgnoreCase("G")){
System.out.print("--. ");
}
if (english.equalsIgnoreCase("H")){
System.out.print(".... ");
}
if (english.equalsIgnoreCase("I")){
System.out.print(".. ");
}
if (english.equalsIgnoreCase("J")){
System.out.print(".--- ");
}
if (english.equalsIgnoreCase("K")){
System.out.print("-.- ");
}
if (english.equalsIgnoreCase("L")){
System.out.print(".-.. ");
}
if (english.equalsIgnoreCase("M")){
System.out.print("-- ");
}
if (english.equalsIgnoreCase("N")){
System.out.print("-. ");
}
if (english.equalsIgnoreCase("O")){
System.out.print("--- ");
}
if (english.equalsIgnoreCase("P")){
System.out.print(".--. ");
}
if (english.equalsIgnoreCase("Q")){
System.out.print("--.- ");
}
if (english.equalsIgnoreCase("R")){
System.out.print(".-. ");
}
if (english.equalsIgnoreCase("S")){
System.out.print("... ");
}
if (english.equalsIgnoreCase("T")){
System.out.print("- ");
}
if (english.equalsIgnoreCase("U")){
System.out.print("..- ");
}
if (english.equalsIgnoreCase("V")){
System.out.print("...- ");
}
if (english.equalsIgnoreCase("W")){
System.out.print(".-- ");
}
if (english.equalsIgnoreCase("X")){
System.out.print("-..- ");
}
if (english.equalsIgnoreCase("Y")){
System.out.print("-.-- ");
}
if (english.equalsIgnoreCase("Z")){
System.out.print("--.. ");
}
if (english.equalsIgnoreCase("1")){
System.out.print(".---- ");
}
if (english.equalsIgnoreCase("2")){
System.out.print("..--- ");
}
if (english.equalsIgnoreCase("3")){
System.out.print("...-- ");
}
if (english.equalsIgnoreCase("4")){
System.out.print("...- ");
}
if (english.equalsIgnoreCase("5")){
System.out.print("..... ");
}
if (english.equalsIgnoreCase("6")){
System.out.print("-.... ");
}
if (english.equalsIgnoreCase("7")){
System.out.print("--... ");
}
if (english.equalsIgnoreCase("8")){
System.out.print("---.. ");
}
if (english.equalsIgnoreCase("9")){
System.out.print("----. ");
}
if (english.equalsIgnoreCase("0")){
System.out.print("----- ");
}
}
}
После многочисленных попыток попробовать различные Lops и условия , Я не могу пройти мимо вопроса о том, что моя программа может только перевести один символ. Если я вводил несколько, он завершается. Если бы кто-то мог привести меня по правильному пути в определении того, как закодировать эти утверждения if, пока все символы не будут переведены, я был бы очень благодарен.
Вы пытаетесь сравнить всю строку. Если строка «hello», вы должны переводить каждую из букв в ней один за другим - сначала «h», затем «e» и так далее. Для этого вам нужно начать с буквы с нулевым индексом, затем перейти к букве с 1 индексом и так далее. Знаете ли вы методы, которые дают вам длину строки и символ в данном индексе? – RealSkeptic
Не уверен, но если бы вы могли объяснить, это было бы здорово! –