我正在尝试将英文字母转换为莫尔斯电码,但是当涉及多个输入字母时,我遇到了困难。我可以说出我的问题是什么,但不能解决。
我对Java还是很陌生,我知道我的做法很草率和重复,但这是我到目前为止所能掌握的全部方法。
我做了一些场景,例如,找出输入中有多少个字母,然后转换每个字母;但同样,我不确定这是否可行或什至可行。
import java.util.Scanner;
public class JavaPractice {
public static void main(String[] args) {
String morseA;
morseA = "•-";
String morseB;
morseB = "-•••";
String morseC;
morseC = "-•-•";
String morseD;
morseD = "-••";
String morseE;
morseE = "•";
String morseF;
morseF = "••-•";
String morseG;
morseG = "--•";
String morseH;
morseH = "••••";
String morseI;
morseI = "••";
String morseJ;
morseJ = "•---";
String morseK;
morseK = "-•-";
String morseL;
morseL = "•-••";
String morseM;
morseM = "--";
String morseN;
morseN = "-•";
String morseO;
morseO = "---";
String morseP;
morseP = "•--•";
String morseQ;
morseQ = "--•-";
String morseR;
morseR = "•-•";
String morseS;
morseS = "•••";
String morseT;
morseT = "-";
String morseU;
morseU = "••-";
String morseV;
morseV = "•••-";
String morseW;
morseW = "•--";
String morseX;
morseX = "-••-";
String morseY;
morseY = "-•--";
String morseZ;
morseZ = "--••";
Scanner morseInput = new Scanner(System.in);
System.out.println("type a letter and it will be converted into morse code!");
String morseTranslation = morseInput.nextLine();
if (morseTranslation.length() > 0) {
if (morseTranslation.equals("a")) {
System.out.println(morseA);
}
if (morseTranslation.equals("b")) {
System.out.println(morseB);
}
if (morseTranslation.equals("c")) {
System.out.println(morseC);
}
if (morseTranslation.equals("d")) {
System.out.println(morseD);
}
if (morseTranslation.equals("e")) {
System.out.println(morseE);
}
if (morseTranslation.equals("f")) {
System.out.println(morseF);
}
if (morseTranslation.equals("g")) {
System.out.println(morseG);
}
if (morseTranslation.equals("h")) {
System.out.println(morseH);
}
if (morseTranslation.equals("i")) {
System.out.println(morseI);
}
if (morseTranslation.equals("j")) {
System.out.println(morseJ);
}
if (morseTranslation.equals("k")) {
System.out.println(morseK);
}
if (morseTranslation.equals("l")) {
System.out.println(morseL);
}
if (morseTranslation.equals("m")) {
System.out.println(morseM);
}
if (morseTranslation.equals("n")) {
System.out.println(morseN);
}
if (morseTranslation.equals("o")) {
System.out.println(morseO);
}
if (morseTranslation.equals("p")) {
System.out.println(morseP);
}
if (morseTranslation.equals("q")) {
System.out.println(morseQ);
}
if (morseTranslation.equals("r")) {
System.out.println(morseR);
}
if (morseTranslation.equals("s")) {
System.out.println(morseS);
}
if (morseTranslation.equals("t")) {
System.out.println(morseT);
}
if (morseTranslation.equals("u")) {
System.out.println(morseU);
}
if (morseTranslation.equals("v")) {
System.out.println(morseV);
}
if (morseTranslation.equals("w")) {
System.out.println(morseW);
}
if (morseTranslation.equals("x")) {
System.out.println(morseX);
}
if (morseTranslation.equals("y")) {
System.out.println(morseY);
}
if (morseTranslation.equals("z")) {
System.out.println(morseZ);
}
System.out.println(morseTranslation.charAt(0) + " " + morseTranslation.charAt(1));
}
}
}
// if statements
// long but might work
// charAt find out how many letters they typed in/inputed
// make something that uses chatAt for each character depending on how many there are,
// and individually translate each letter
最佳答案
请尝试使用此编辑后的代码,它将以莫尔斯电码打印输入的单词
导入java.util.Scanner;
公共类JavaPractice {
public static void main(String[] args) {
String morseA;
morseA = "•-";
String morseB;
morseB = "-•••";
String morseC;
morseC = "-•-•";
String morseD;
morseD = "-••";
String morseE;
morseE = "•";
String morseF;
morseF = "••-•";
String morseG;
morseG = "--•";
String morseH;
morseH = "••••";
String morseI;
morseI = "••";
String morseJ;
morseJ = "•---";
String morseK;
morseK = "-•-";
String morseL;
morseL = "•-••";
String morseM;
morseM = "--";
String morseN;
morseN = "-•";
String morseO;
morseO = "---";
String morseP;
morseP = "•--•";
String morseQ;
morseQ = "--•-";
String morseR;
morseR = "•-•";
String morseS;
morseS = "•••";
String morseT;
morseT = "-";
String morseU;
morseU = "••-";
String morseV;
morseV = "•••-";
String morseW;
morseW = "•--";
String morseX;
morseX = "-••-";
String morseY;
morseY = "-•--";
String morseZ;
morseZ = "--••";
Scanner morseInput = new Scanner(System.in);
System.out.println("type a letter and it will be converted into morse code!");
String morseTranslation = morseInput.nextLine();
if (morseTranslation.length() > 0) {
for (int i = 0; i < morseTranslation.length(); i++) {
String character = ""+morseTranslation.charAt(i);
if (character.contains("a")) {
System.out.println(morseA);
}
if (character.contains("b")) {
System.out.println(morseB);
}
if (character.contains("c")) {
System.out.println(morseC);
}
if (character.contains("d")) {
System.out.println(morseD);
}
if (character.contains("e")) {
System.out.println(morseE);
}
if (character.contains("f")) {
System.out.println(morseF);
}
if (character.contains("g")) {
System.out.println(morseG);
}
if (character.contains("h")) {
System.out.println(morseH);
}
if (character.contains("i")) {
System.out.println(morseI);
}
if (character.contains("j")) {
System.out.println(morseJ);
}
if (character.contains("k")) {
System.out.println(morseK);
}
if (character.contains("l")) {
System.out.println(morseL);
}
if (character.contains("m")) {
System.out.println(morseM);
}
if (character.contains("n")) {
System.out.println(morseN);
}
if (character.contains("o")) {
System.out.println(morseO);
}
if (character.contains("p")) {
System.out.println(morseP);
}
if (character.contains("q")) {
System.out.println(morseQ);
}
if (character.contains("r")) {
System.out.println(morseR);
}
if (character.contains("s")) {
System.out.println(morseS);
}
if (character.contains("t")) {
System.out.println(morseT);
}
if (character.contains("u")) {
System.out.println(morseU);
}
if (character.contains("v")) {
System.out.println(morseV);
}
if (character.contains("w")) {
System.out.println(morseW);
}
if (character.contains("x")) {
System.out.println(morseX);
}
if (character.contains("y")) {
System.out.println(morseY);
}
if (character.contains("z")) {
System.out.println(morseZ);
}
}
System.out.println(morseTranslation.charAt(0) + " " + morseTranslation.charAt(1));
}
}
}
关于java - 将用户输入转换为字符串,遇到多个字母的麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57735129/