у меня проблема с моим переводчиком Java 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
.
Спасибо за вашу помощь!
mc
- это ваша азбука Морзе, то есть строка, содержащая только.
,-
и пробелы? ИgetCharacter
действительно возвращает букву, соответствующую заданной последовательности.
и-
? - person Sylvain Leroux   schedule 07.09.2014