0

我的 Java Morsecode Translator 有问题。我制作了两个用字符和摩尔斯电码填充的数组。如果我想将摩尔斯电码翻译成文本方法 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

谢谢你的帮助!

4

1 回答 1

0

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

于 2014-09-07T18:12:26.243 回答