Given two string variables a and b, swap these variables without using temporary or third variable in Java. Use of library methods is allowed.
Examples:
Input: a = "Hello" b = "World" Output: Strings before swap: a = Hello and b = World Strings after swap: a = World and b = Hello
The idea is to string concatenation and substring() method to perform this operation. The substring() method comes in two forms as listed below:
- substring(int beginindex): This fuction will return substring of the calling string starting from the index passed as argument to this function till the last character in the calling string.
- substring(int beginindex,int endindex): This function will return Substring of the calling string starting from the beginindex(inclusive) and ending at the endindex(exclusive) passed as argument to this function.
Algorithm:
1) Append second string to first string and store in first string: a = a + b 2) call the method substring(int beginindex, int endindex) by passing beginindex as 0 and endindex as, a.length() - b.length(): b = substring(0,a.length()-b.length()); 3) call the method substring(int beginindex) by passing b.length() as argument to store the value of initial b string in a a = substring(b.length());
// Java program to swap two strings without using a temporary // variable. import java.util.*; class Swap { public static void main(String args[]) { // Declare two strings String a = "Hello" ; String b = "World" ; // Print String before swapping System.out.println( "Strings before swap: a = " + a + " and b = " +b); // append 2nd string to 1st a = a + b; // store intial string a in string b b = a.substring( 0 ,a.length()-b.length()); // store initial string b in string a a = a.substring(b.length()); // print String after swapping System.out.println( "Strings after swap: a = " + a + " and b = " + b); } } |
Output:
Strings before swap: a = Hello and b = World Strings after swap: a = World and b = Hello
References:
http://docs.oracle.com/
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
leave a comment
0 Comments