это мой первый пост на этой платформе, я новичок в этом программировании на Java, а также не очень хорош в английском: p
Мой учитель попросил переводчик азбуки Морзе, который переводит буквы Морзе в буквы и наоборот.
Вот код, который я придумал:
import java.util.Scanner;
public class Morse2 {
public static void main(String[] args){
String[] letras = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l",
"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x",
"y", "z"};
String[] MORSE = {
".-" ,"-...","-.-.","-.." ,"." ,
"..-.","--." ,"....",".." ,".---",
"-.-" ,".-..","--" ,"-." ,"---" ,
".--.","--.-",".-." ,"..." ,"-" ,
"..-" ,"...-",".--", "-..-","-.--",
"--.."};
System.out.println("Insira uma frase em codigo morse para uma traducao para texto ou vice-versa");
Scanner in=new Scanner(System.in);
String frase =in.nextLine();
String resp="";
frase=frase.toLowerCase();
String[] paraletras=frase.split("");
String[]paraMorse=frase.split(" ");
for(int i=0;i< paraletras.length;i++){
for(int j=0;j< letras.length ;j++){
if (paraletras[i].equals(letras[j])){
resp=resp+ MORSE[j]+" ";}
}
}
for(int k=0;k<paraMorse.length;k++){
for (int l=0;l<MORSE.length;l++){
if(paraMorse[k].equals(MORSE[l])){
resp=resp+letras[l]+ " ";}}
}
System.out.print(resp);}
}
Класс компилируется нормально, но у меня есть некоторые проблемы с моим выводом, в частности с порядком вывода:
например, мой ввод "a b -.- c" Что я хотел ".- -... k -.-." Что я получил ".- -... -.-. k" Я считаю, что это потому, что я использовал 2 для циклов вместо 1, но я действительно не могу сказать, как это сделать. Буду признателен за некоторую помощь. Также, когда пользователь пишет невозможный символ как "*" я должен был поставить "?" в этой позиции, и я также борюсь с этим, я не знаю, должен ли я использовать цикл if else или что
Пожалуйста, помогите мне и спасибо всем ^^