Как заменить символ на строку
Я знаю, что заменить символ на строку невозможно, но я пытаюсь создать программу перевода азбуки Морзе, и у меня есть два массива, один с буквами, а другой с переводом кода Морзе! Я использовал StringTokenizer и хочу взять каждый символ слова и заменить его переводом символа в азбуке Морзе! Как это может быть сделано?
Вот часть кода, которая действительно имеет значение:
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
if (isWord(token)) {
for (int j = 0; j < token.length(); j++) {
char ch = token.charAt(j);
for (int k=0; k<26; k++){
if (ch==((char)letter[k])){
ch=(char)morse[k];
}
}
}
System.out.print(token);
}
}
1 ответ
Вы можете использовать StringBuilder для этого. Учитывая, что у вас есть один массив с вашими символами, вы можете просто перебрать каждый символ и добавить его переведенный вариант к объекту StringBuilder.
Пример:
char[] chars = {'h', 'e', 'l', 'l', 'o'};
StringBuilder sb = new StringBuilder();
for (char c : chars) {
sb.append(getMorse(c));
}
System.out.println(sb.toString());
Где getMorse() - это функция, которая возвращает строку, содержащую вариант кода Морзе символа.