import java.util.Scanner;
import java.util.Arrays;

class palin_alpha_rev_concat{
    static boolean palindrome(String str)
    {
        String rev=reverse(str);
        return str.contentEquals(rev);
    }

    static String[] alphabetic(String str) {
        char[] arr = str.toCharArray(); 
        Arrays.sort(arr); 
        String sortedStr = new String(arr); 
        
        String[] result = new String[sortedStr.length()];
        for (int i = 0; i < sortedStr.length(); i++) {
            result[i] = String.valueOf(sortedStr.charAt(i)); 
        }
        
        return result; 
    }
    
    static String reverse(String str)
    {
        StringBuffer rev=new StringBuffer(str);
        rev.reverse();
        String revstr=rev.toString();
        return revstr;
    }
    static String concatenate(String str)
    {
        String rev=reverse(str);
        return str+rev; 
    }
    
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.println("Enter the String");
        String str=in.nextLine();
        char contin='y';
        while(contin=='y'){
            System.out.println("What do you want to do? 1. Check for Palindrome; 2. Write in an alphabetic order; 3. Reverse the String; 4. Concatenate with reversed");
            int choice=in.nextInt();
            switch(choice)
            {
                case 1:
                {
                    System.out.println("String is a palindrome:"+palindrome(str));
                    break;
                }
                case 2: {
                    String arr[] = alphabetic(str); 
                    System.out.println("String in alphabetic order:");
                    for (int i = 0; i < arr.length; i++) {
                        System.out.print(arr[i]); 
                    }
                    System.out.println();
                    break;
                }
                case 3:
                {
                    System.out.println("Reversed string="+reverse(str));
                    break;
                }
                case 4:
                {
                    System.out.println("Concatenated String="+concatenate(str));
                    break;
                }
            }
            System.out.println("Continue?(y/n)");
            contin=in.next().charAt(0);
        }

    }
}