Which method of String class is most appropriate for extracting all the characters of String into an array?

This article discusses different ways to reverse a string in Java with examples. 

Examples:  

Which method of String class is most appropriate for extracting all the characters of String into an array?

Prerequisite: String vs StringBuilder vs StringBuffer in Java

Following are some interesting facts about String and StringBuilder classes : 

  1. Objects of String are immutable. 
  2. String class in Java does not have reverse() method, however, the StringBuilder class has built-in reverse() method. 
  3. StringBuilder class do not have toCharArray() method, while String class does have toCharArray() method. 
1. The idea is to traverse the length of the string 2. Extract each character while traversing 3. Add each character in front of the existing string

Implementation:

Java

import java.io.*;

import java.util.Scanner;

class GFG {

    public static void main (String[] args) {

        String str= "Geeks", nstr="";

        char ch;

      System.out.print("Original word: ");

      System.out.println("Geeks");

      for (int i=0; i

      {

        ch= str.charAt(i);

        nstr= ch+nstr;

      }

      System.out.println("Reversed word: "+ nstr);

    }

}

Output

Original word: Geeks Reversed word: skeeG

Converting String into Bytes: getBytes() method is used to convert the input string into bytes[]. 

Method:  

1. Create a temporary byte[] of length equal to the length of the input string. 2. Store the bytes (which we get by using getBytes() method) in reverse order into the temporary byte[] . 3. Create a new String abject using byte[] to store result.

Implementation:

Java

import java.lang.*;

import java.io.*;

import java.util.*;

class ReverseString {

    public static void main(String[] args)

    {

        String input = "GeeksforGeeks";

        byte[] strAsByteArray = input.getBytes();

        byte[] result = new byte[strAsByteArray.length];

        for (int i = 0; i < strAsByteArray.length; i++)

            result[i] = strAsByteArray[strAsByteArray.length - i - 1];

        System.out.println(new String(result));

    }

}

Using built in reverse() method of the StringBuilder class: 

String class does not have reverse() method, we need to convert the input string to StringBuilder, which is achieved by using the append method of StringBuilder. After that, print out the characters of the reversed string by scanning from the first till the last index.

Which method of String class is most appropriate for extracting all the characters of String into an array?

Implementation:

Java

import java.lang.*;

import java.io.*;

import java.util.*;

class ReverseString {

    public static void main(String[] args)

    {

        String input = "Geeks for Geeks";

        StringBuilder input1 = new StringBuilder();

        input1.append(input);

        input1.reverse();

        System.out.println(input1);

    }

}

Converting String to character array: The user input the string to be reversed. 

Method:

1. First, convert String to character array by using the built in Java String class method toCharArray(). 2. Then, scan the string from end to start, and print the character one by one.

Implementation:

Java

import java.lang.*;

import java.io.*;

import java.util.*;

class ReverseString {

    public static void main(String[] args)

    {

        String input = "GeeksForGeeks";

        char[] try1 = input.toCharArray();

        for (int i = try1.length - 1; i >= 0; i--)

            System.out.print(try1[i]);

    }

}

  • Convert the input string into character array by using the toCharArray(): Convert the input string into character array by using the toCharArray() – built in method of the String Class. Then, scan the character array from both sides i.e from the start index (left) as well as from last index(right) simultaneously.
1. Set the left index equal to 0 and right index equal to the length of the string -1. 2. Swap the characters of the start index scanning with the last index scanning one by one. After that, increase the left index by 1 (left++) and decrease the right by 1 i.e., (right--) to move on to the next characters in the character array . 3. Continue till left is less than or equal to the right.

Implementation:

Java

import java.lang.*;

import java.io.*;

import java.util.*;

class ReverseString {

    public static void main(String[] args)

    {

        String input = "Geeks For Geeks";

        char[] temparray = input.toCharArray();

        int left, right = 0;

        right = temparray.length - 1;

        for (left = 0; left < right; left++, right--) {

            char temp = temparray[left];

            temparray[left] = temparray[right];

            temparray[right] = temp;

        }

        for (char c : temparray)

            System.out.print(c);

        System.out.println();

    }

}

  • Using ArrayList object: Convert the input string into the character array by using toCharArray() built in method. Then, add the characters of the array into the ArrayList object. Java also has built in reverse() method for the Collections class. Since Collections class reverse() method takes a list object, to reverse the list, we will pass the ArrayList object which is a type of list of characters.
1. We copy String contents to an object of ArrayList. 1. We create a ListIterator object by using the listIterator() method on the ArrayList object. 2. ListIterator object is used to iterate over the list. 3. ListIterator object helps us to iterate over the reversed list and print it one by one to the output screen.

Implementation:

Java

import java.lang.*;

import java.io.*;

import java.util.*;

class ReverseString {

    public static void main(String[] args)

    {

        String input = "Geeks For Geeks";

        char[] hello = input.toCharArray();

        List trial1 = new ArrayList<>();

        for (char c : hello)

            trial1.add(c);

        Collections.reverse(trial1);

        ListIterator li = trial1.listIterator();

        while (li.hasNext())

            System.out.print(li.next());

    }

}

Using StringBuffer: 

String class does not have reverse() method, we need to convert the input string to StringBuffer, which is achieved by using the reverse method of StringBuffer.

Implementation:

Java

import java.lang.*;

import java.io.*;

import java.util.*;

public class Test {

    public static void main(String[] args)

    {

        String str = "Geeks";

        StringBuffer sbr = new StringBuffer(str);

        sbr.reverse();

        System.out.println(sbr);

    }

}

  • Reversing String by taking input from user-

Java

import java.io.*;

import java.util.Scanner;

class GFG {

    public static void main (String[] args) {

        Scanner scanner = new Scanner(System.in);

        String Str = scanner.nextLine();

        char[] arr = Str.toCharArray();

        String rev = "";

 for(int i = Str.length() - 1; i >= 0; i--)

 {

 rev = rev + Str.charAt(i);

 }

 System.out.println(rev);

    }

}

In the above code, we are essentially reading a String from the user before starting an iteration loop to create a new, inverted String. The “charAt” function of the String class is used to retrieve each character of the original String individually from the end, and the “+” operator is used to concatenate them into a new String.

Related Article: Different methods to reverse a string in C/C++

This article is contributed by Mr. Somesh Awasthi. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks


Which of the following method of String class is most appropriate for extracting all the characters of String into an array?

Explanation: Because we are performing operation on reference variable which is null. 5. Which of these methods can be used to convert all characters in a String into a character array? Explanation: charAt() return one character only not array of character.

Which methods are used to extract the characters from String?

Below are various ways to do so:.
Using String. charAt() method: Get the string and the index. ... .
Using String. toCharArray() method: Get the string and the index. ... .
Using Java 8 Streams: Get the string and the index. Convert String into IntStream using String. ... .
Using String. codePointAt() method: ... .
Using String. getChars() method:.

Which of these methods of class String is used to extract all the characters from a String object * A charAt () b remove () C charAt () d replace ()?

Explanation: Replace() replaces all instances of a character with a new character while Remove extracts characters from the string.

Which method of String class is used to extract a particular character in the String?

charAt() is the method of class String is used to extract a single character from a String Object. Hence, option(c) is the correct answer.