Перевернуть все слова строки

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

public class MyString {
    public static String ReverseString(String string) {
        char[] array = string.toCharArray();
        int i = 0, j = array.length - 1;
        while (i < j) {
            char t = array[i];
            array[i] = array[j];
            array[j] = t;
            i++;
            j--;
        }
        return String.valueOf(array);
    }
}

Ответы (2 шт):

Автор решения: Николай Гнап

Вот рабочий код:

String str3 = "java";
String[] words = new StringBuilder(str3).reverse().toString().split(" ");
StringBuilder newStr = new StringBuilder();
for (int i = words.length - 1; i >= 0; i--)
    newStr.append(words[i]).append("");
System.out.println(newStr);
→ Ссылка
Автор решения: user

Разворачиваем слова в строке:

String str = "Привет Мир";

String reverse = Arrays.stream(str.split("\\s+"))
        // для каждого слова в строке
        // получаем массив символов
        .map(String::toCharArray)
        // разворачиваем массив символов
        .map(arr -> {
            IntStream.range(0, arr.length / 2).forEach(i -> {
                char temp = arr[i];
                arr[i] = arr[arr.length - 1 - i];
                arr[arr.length - 1 - i] = temp;
            });
            return arr;
        })
        // собираем слово из массива символов
        .map(String::valueOf)
        // собираем троку из слов
        .collect(Collectors.joining(" "));

System.out.println(reverse); // тевирП риМ
→ Ссылка