Как заменить символ на строку

Я знаю, что заменить символ на строку невозможно, но я пытаюсь создать программу перевода азбуки Морзе, и у меня есть два массива, один с буквами, а другой с переводом кода Морзе! Я использовал 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() - это функция, которая возвращает строку, содержащую вариант кода Морзе символа.

Другие вопросы по тегам