You are on page 1of 2

Program to Reverse the String in different ways :

private static void programToReverseString() {


//Program to reverse the string
//1st way going end to end by taking the string builder
StringBuilder reverseString = new StringBuilder();
for(int i=TEXT.length()-1;i>=0;i--){
reverseString.append(TEXT.charAt(i));
}
System.out.println(reverseString.toString());

//Java 8 way to map the


String reversed = TEXT.chars()
.mapToObj(c -> (char)c).reduce("", (s,c) -> c+s, (s1,s2) -> s2+s1);

System.out.println(reversed);
//Easy way
//using the String Builder class
String reversedString=new StringBuilder(TEXT).reverse().toString();
System.out.println(reversedString);

//Other way String to chars and then append to reverse builder


StringBuilder reverseStr = new StringBuilder();
char[] charsArr=TEXT.toCharArray();

for(int i=0;i<charsArr.length;i++){
reverseStr.insert(i,charsArr[charsArr.length-1-i]);
}
System.out.println(reverseStr);
//Verification
if(reversed.equals(reverseString.toString())&&
reversedString.equals(reverseStr.toString())){
System.out.println("Reverse is done");
}

Check whethr a String is palindrome or not

private static void checkPalindrome() {


// Program to check the string is palindrome
//so I have to write the code in traditional way
//madam --> odd ->n/2 check andf compare Left Right digits until the middle
so intialize with o and max legth
//abccba --> even

String oddPalindrome="MADAM";
int left=0,right=oddPalindrome.length()-1;
boolean flag=true;
for (int i=0;i<oddPalindrome.length()/2;i++){
while(left<right){
if(!(oddPalindrome.charAt(left)==oddPalindrome.charAt(right))){
flag= false;
break;
}
left++;
right--;
}
}
if(flag){
System.out.println("The given String :"+oddPalindrome+"is palindrome");
}

//Using Other Approach with out declaration or initialization of variables


i.e just use the values over there
//try using the strinhg methods split and reverse and then join

String palindrome="MADdAM";
String[] palindromeChars=palindrome.split("");
StringBuilder sbpalindrome= new StringBuilder();
for(int i=palindromeChars.length-1;i>=0;i--){
sbpalindrome.append(palindromeChars[i]);
}
System.out.println(sbpalindrome);
if(palindrome.equals(sbpalindrome)){
System.out.println("Palindrome");
}

// Easy way i.e String Builder approach


String evenPalindrome="abccba";
String reverseString= new StringBuilder(evenPalindrome).reverse().toString();
if(evenPalindrome.equals(reverseString)){
System.out.println("Given String is palindrome");
}

You might also like