Обратный порядок символов в каждом слове при сохранении последовательности слов

Нужно разворачивать каждое слово отдельно. Для строки из условия результат — emaN si eht tseb TI !ynapmoc; разворот всей строки меняет также порядок слов и не подходит.

Короткий ответ

Что ответить на собеседовании

Нужно разворачивать каждое слово отдельно. Для строки из условия результат — emaN si eht tseb TI !ynapmoc; разворот всей строки меняет также порядок слов и не подходит.

Подробный разбор

Ответ с пояснениями

Условие

Дана строка input. Необходимо изменить порядок символов внутри каждого отдельного слова, при этом порядок самих слов в предложении должен остаться неизменным. Как выполнить эту задачу?

import java.io.*;
class MyCode {
    public static void main(String[] args) {
        String input = "Name is the best IT company!";
        System.out.println(reverseWordChars(input));
        System.out.println("!/ynapmoc TI tseb eht si emaN".equals(reverseWordChars(input)));
    }

    public static String reverseWordChars(String str) {
        return new StringBuilder(str).reverse().toString();
    }
}

Ответ

Нужно разворачивать каждое слово отдельно. Для строки из условия результат — emaN si eht tseb TI !ynapmoc; разворот всей строки меняет также порядок слов и не подходит.

Вариант Java с сохранением пробельных разделителей:

static String reverseWordChars(String str) {
    var matcher = java.util.regex.Pattern.compile("\\S+").matcher(str);
    var result = new StringBuffer();
    while (matcher.find()) {
        String word = new StringBuilder(matcher.group()).reverse().toString();
        matcher.appendReplacement(result,
            java.util.regex.Matcher.quoteReplacement(word));
    }
    matcher.appendTail(result);
    return result.toString();
}

Пунктуация считается частью слова и тоже разворачивается. Проверка в исходнике содержит неподходящее ожидаемое значение. Для сложных Unicode-графем нужна отдельно согласованная обработка, а не простой разворот символов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее