Problem statement:
Write a Java program to reverse position of words in given string i.e. word at first position in string should be at last position in string.
Input String: You are awesome
Output String: awesome are You
Solution:
It is a very easy program. You just need understanding of splitting a string, array and for loop to traverse string in reverse direction.
Steps to follow:
Step 1: First of all we need to extract words from a given string. Two words are separated by while space. We can use split() method given by String class which splits a string by provided delimiter and returns a String[] of splitted words. For example:
public class SplitString { public static void main(String[] args) { String inputString = "Make Selenium Easy"; String spliited[] = inputString.split(" "); for(int i=0;i<spliited.length;i++) { System.out.println(spliited[i]); } } }
Output:
Make
Selenium
Easy
Step 2: Traverse from end to first position and print array content.
Java Program:
[java]package StringPrograms;
import java.util.Scanner;
public class ReverseStringByPositionOfWords {
/*
* This method splits given string by space delimiter and returns a String
* array.
*/
public static String[] splitStringBySpace(String inputStringToSplit) {
return inputStringToSplit.split(" ");
}
public static void main(String[] args) {
// User input for the string to know length
Scanner sc = new Scanner(System.in);
System.out.println("Please enter the string to reverse each word:");
String userInput = sc.nextLine();
sc.close();
// Split string
String[] splitedString = splitStringBySpace(userInput);
// Output with each word reversed
String desiredString="";
// Reversing word by word and appending
for(int j=splitedString.length-1;j>=0;j–)
{
desiredString= desiredString + splitedString[j] +" ";
}
System.out.println("Original string :"+userInput);
System.out.println("String with reversed words :"+desiredString);
}
}
[/java]
Output:
Hopefully, you got the logic to solve above problem. If you have any doubt, kindly comment.
#HappyCoding