Переключатель для и foreach - PullRequest
       39

Переключатель для и foreach

0 голосов
/ 06 октября 2019

Мне нужно изменить цикл for на цикл foreach в этом методе, как я могу это сделать? (При необходимости можно добавить полный класс)

public String decode(String input) {
    String[] letters = input.split(" ");
    StringBuilder ret = new StringBuilder();

    for(int i=0; i<letters.length; i++)
        ret.append(decodeMap.get(letters[i]));
    return ret.toString();
}

Ответы [ 2 ]

4 голосов
/ 06 октября 2019

Вы должны указать, какой язык вы используете. Я предполагаю, что Java. Используйте for(datatype var : collection). Вот как это будет выглядеть

public String decode(String input) {
    String[] letters = input.split(" ");
    StringBuilder ret = new StringBuilder();
    for(String s : letters){
                ret.append(decodeMap.get(s));
    }
    return ret.toString();
}
0 голосов
/ 06 октября 2019

Чтобы избежать ненужного создания StringBuilder, я бы предложил что-то подобное (при условии, что вы используете Java 8+):

    public String decode(String input) {
        String[] letters = input.split(" ");
        return Arrays.stream(letters)
                     .map(decodeMap::get)
                     .collect(Collectors.joining());
    }
...