我试图制作一个获取字符串消息的莫尔斯电码转换器,并将其转换为与摩尔斯电码相对应的一系列哔声。我目前的问题是,当我运行该程序时,我只能听到太哔声。
import java.util.Scanner;
import sun.audio.*; //import the sun.audio package
import java.io.*;
public class Morse{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
AudioPlayer MGP = AudioPlayer.player;
AudioStream BGM;
AudioStream BGM2;
try
{
InputStream test = new FileInputStream("beep-1.wav"); //long beep
InputStream test2 = new FileInputStream("beep-7.wav"); //short beep
BGM = new AudioStream(test);
BGM2 = new AudioStream(test2);
System.out.println("Bienvenido al traductor de código Morse.");
System.out.println("Por favor escriba el texto que desea traducir.");
String mensaje = sc.nextLine();
char l;
for(int n = 0; n < mensaje.length(); n++){
//here goes the sounds
l = mensaje.charAt(n);
}
例如,我为a和b得到了以下内容:
if(l == 'a' || l == 'A'){ //a = *-
AudioPlayer.player.start(BGM2);
Thread.sleep(1000);
AudioPlayer.player.start(BGM);
Thread.sleep(1000);
} else if(l == 'b' || l == 'B'){ //b = -***
AudioPlayer.player.start(BGM);
Thread.sleep(1000);
AudioPlayer.player.start(BGM2);
Thread.sleep(1000);
AudioPlayer.player.start(BGM2);
Thread.sleep(1000);
AudioPlayer.player.start(BGM2);
Thread.sleep(1000);
}
大多数其他字母都具有相同的格式,因此,如果我输入Ab,我应该期待以下内容: 短促的哔哔 - 长哔 - 短蜂鸣 - 短蜂鸣 - 短蜂鸣 - 短蜂鸣声
但是,我只会发出短促的哔哔声。
字母e发生了类似的事情(莫尔斯电码只是一声短促的哔声):
else if(l == 'e' || l == 'E'){ //e = *
AudioPlayer.player.start(BGM2);
Thread.sleep(1000);
}
如果输入Ee,我会发出短促的哔哔声,但我只发出一声短促的哔哔声。
知道为什么会这样吗?