Java Морсек Переводчик
У меня проблема с моим Java Morsecode Translator. Я сделал два массива, заполненных символами и 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 ответ
Регулярные выражения Java позволяют указать количество вхождений. mctrim.split("\\s{3,}"
) следует разбить строку на предложения (3 или более пробелов), после чего вы можете дополнительно разбить предложения, используя тривиальные "\\s+"
,