Я сделал хороший прорыв с моим переводчиком Morse Code с помощью вас, но проблема с пробелами все еще есть, если в тексте есть неизвестный символ.Удаление пропусков в морском кодировщике
Это метод я использую для перевода один символ в коде Морзе, а не с помощью HashMaps
public String getMorseCode(char c) {
char cUpper = Character.toUpperCase(c);
if (charMap.containsKey(cUpper)) {
return charMap.get(cUpper);
} else {
final String emptyString = "";
return emptyString;
}
}
Используя этот метод, я перевести текст на азбуку Морзе, используя метод кодирования (нет проблем с этим!):
public String encode(String text) {
StringBuilder sb1 = new StringBuilder();
int i = 0;
while (i < text.length()) {
char c = text.charAt(i);
if (c == ' ') {
sb1.append("/");
i++;
} else {
i = i + 1;
sb1.append(getMorseCode(c));
}
sb1.append("*");
}
return sb1.toString().trim();
}
Пробелы до и после предложения удаляются через .trim(). В morsecode между словами есть 3 пробела, между пробелами chars 1. Если в тексте есть неизвестный символ, то после него должна быть пустая строка ("") без пробелов. Я изменяю пробелы в методе в/и *, чтобы увидеть, как все меняется, но по-прежнему остается той же проблемой.
Я просто не знаю, как изменить свой код, чтобы это произошло! Заранее благодарим за помощь!