Java摩尔斯电码转换器

时间:2014-09-07 17:35:22

标签: java morse-code

我的Java Morsecode Translator出了问题。 我制作了两个充满了Characters和MorseCode的数组。如果我想将Morsecode翻译成文本方法decode()

public String decode(String mc) {
    StringBuilder sb2 = new StringBuilder();
    // trim() removes whitespaces before or after String
    String mctrim = mc.trim();
    //Morsecode has a short Pause (1 Whitespace) between every character 
    //and a long Pause (3 Whitespaces) between words
    //Splitting the Morsecode to get chars 
    if (mctrim.contains(kurzePause)) {
        String[] mcsplit2 = mctrim.split(kurzePause);
        for (int i = 0; i < mcsplit2.length; i++) {
            sb2.append(getCharacter(mcsplit2[i]));
        }
    }
    return sb2.toString();

应该通过方法getCharacter()获取每个字符。 如果字符未在数组中列出,则句子中会显示“$”。现在我已经将kurzePause(短暂停)和langePause(长暂停)声明为变量。空格不是我的数组的一部分。

如何拆分区分三个空格(longPause)和一个空格(shortPause)的字符串

正确摩尔斯电码(.--- .- ...- .- -- .- -.-. .... - ... .--. .- ... ... .-.-.-)的给定输出示例: JAVA$$MACHT$$SPASS

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Java正则表达式允许指定出现次数。 mctrim.split("\\s{3,}")应该将字符串拆分成句子(3个或更多个空格),然后你可以使用琐碎的"\\s+"进一步分割句子。