我的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
。
感谢您的帮助!
答案 0 :(得分:0)
Java正则表达式允许指定出现次数。 mctrim.split("\\s{3,}"
)应该将字符串拆分成句子(3个或更多个空格),然后你可以使用琐碎的"\\s+"
进一步分割句子。