Reverse The Words In A String Java
Last Updated : Mar 11, 2024
In this article we will show you the solution of reverse the words in a string java, in this problem "Reverse words in a String", An input string, s, is provided to us.
To return the string of a words in reverse order, we must switch the order of a words.
Approach 1 - Reversing the process of string splitting & saving
Splitting the string & saving this in reverse order is among the simplest techniques to reverse words inside a string.
This is the naive approach.
Complexity Analysis
Let's analyze the time and space complexity of this approach :
- Time Complexity : O(n) as we use only one for a loop.
- Space Complexity : O(n) as we are storing our output that is, the reversed string in a new variable.
Approach 2 - Using the Two-Pointers Approach
Now, here comes the optimal solution for this problem.
At the start and the end of the string, respectively, two pointers are initialised.The string is then inverted by switching the words at the beginning and finish.
Algorithm At the start and the end of the string, respectively, two pointers are initialised. The string is then inverted by switching the words at the beginning and finish.
- Convert the word-containing string s into such an array with string expressions.
- Set both right and left and pointers to 0 and s.length() - 1 respectively.
- These elements at the right and left points must now be switched. Move your left pointer there for that.While the left pointer doesn't really exceed the right pointer, move the right pointer one position forward and right pointer backward, swapping the items at each location.
- Return the final string.
Complexity Analysis
Let's analyze the time and space complexity of this approach:
- Time Complexity : O(n)
- Space Complexity : O(1)
Step By Step Guide On Reverse The Words In A String Java :-
import java.util.regex.Pattern; public class TalkersCode { static String reverseWords(String str) { Pattern pattern = Pattern.compile("\\s"); String[] temp = pattern.split(str); String result = ""; for (int i = 0; i < temp.length; i++) { if (i == temp.length - 1) result = temp[i] + result; else result = " " + temp[i] + result; } return result; } public static void main(String[] args) { String s1 = "Welcome to TalkersCode"; System.out.println(reverseWords(s1)); String s2 = "TalkersCode Java"; System.out.println(reverseWords(s2)); } }
- First we create import function as java.util.regex.pattern.
- Then we create class as TalkersCode.
- After that we Specifying the pattern to be searched
- Then we splitting String str with a pattern
- Then we Iterate over the temp array and store the string in reverse order.
- After that we create a string function.
- After successful creating we close program.
Conclusion :-
An extremely significant issue with regard to interview preparation is reverse words inside a string.
Splitting the string & storing it in reverse order is among the simplest solutions to this issue.
Another method to create the reversed string is to switch the words at the beginning and finish. Additionally, this is the best answer to the issue.
I hope this article on reverse the words in a string java helps you and the steps and method mentioned above are easy to follow and implement.