Java program to reverse each word of a string:
In this post, we will learn how to reverse each word of a string in Java. We will write a program that will take a string as input from the user, reverse each word of the string and print the final string.
Since string is immutable, we will use StringBuilder to build the final string. We can convert a StringBuilder to string by using the toString() method.
Java program:
Below is the complete program:
import java.util.Scanner;
class Main {
public static void main(String[] args) {
String givenString;
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a string: ");
givenString = scanner.nextLine();
StringBuilder reverseSb = new StringBuilder();
String[] words = givenString.split("\\s");
for (String w : words) {
reverseSb.append(new StringBuilder(w + " ").reverse());
}
String reverseString = reverseSb.toString().trim();
System.out.println("Given string: " + givenString);
System.out.println("Reverse string: " + reverseString);
}
}
Here,
- givenString is the variable to hold the user input string.
- scanner is a Scanner object to read the user input data.
- It asks the user to enter a string. The string is read and stored in the givenString variable.
- We can’t change a string variable in Java. String is immutable. So, we are creating a StringBuilder object to hold the final string. It is reverseSb.
- The string is split into words. We are using \s to split the string in blank spaces. split returns an array of all the words in the caller string.
- The for loop is running through the words in the array. For each word, it creates a StringBuilder object by appending the word with a blank space. It also calls reverse() to reverse the StringBuilder object and that object is appended to reverseSb.
- Finally, reverseSb is converted to a string with toString() method and end spaces are removed with trim(). We have to use trim() because with each word, we are adding a blank space.
- The last two lines are printing the original string and the final reverse string.
Sample output:
If you run the above program, it will print output as like below:
Enter a string:
hello world!!
Given string: hello world!!
Reverse string: olleh !!dlrow
Enter a string:
hello world hello universe
Given string: hello world hello universe
Reverse string: olleh dlrow olleh esrevinu
You might also like:
- Java program to check if a number is Armstrong or not
- Java String toLowerCase and toUpperCase methods
- Java Math copySign method explanation with examples
- Java Math signum function explanation with examples
- Java program to check if a number is Kaprekar number or not
- Two different ways in Java to find all duplicate string characters
- Java String.replace() method explanation with example
- Java StringBuffer.reverse() method explanation with examples
- Java program to check if a string is empty or not