Search code examples
javaarraysstringstringbuffer

Re-Assaigning a string variable to StringBuffer Object


This is a block of code in one of my program. if i directly assign sb1= str2 i am getting an error. so i am creating two StringBuffer objects.

Is there any possibility to achieve below requirement using only one StringBuffer Object.

   String str1, str2;
    Scanner scanObj = new Scanner(System.in);
    str1 = scanObj.next();
    StringBuffer sb1 = new StringBuffer(str1);
    sb1.reverse();
    str1 = sb1.toString();
    char[] input1 = str1.toCharArray();
    str2 = scanObj.next();
    StringBuffer sb2 = new StringBuffer(str2);
    sb2.reverse();
    str2 = sb2.toString();
    char[] input2 = str2.toCharArray();

Solution

  • You can write

    Scanner scanObj = new Scanner(System.in);
    char[] input1 = new StringBuilder(scanObj.next()).reverse().toString().toCharArray();
    char[] input2 = new StringBuilder(scanObj.next()).reverse().toString().toCharArray();
    

    You can reuse a StringBuilder by using setLength(0) and append() but it would be more complex.