Open In App

Convert String to Byte Array in Java Using getBytes(Charset) Method

Last Updated : 28 Jan, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

In Java, strings are objects that are backed internally by a char array. So to convert a string to a byte array, we need a getBytes(Charset) method. This method converts the given string to a sequence of bytes using the given charset and returns an array of bytes. It is a predefined function of string class. Here, in this method we use an instance of Charset class, this class provides a named mapping between a sequence of the chars and a sequence of bytes. There are many charset defined and are discussed below.

  • US-ASCII: Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the Unicode character set
  • ISO-8859-1: ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1
  • UTF-8: Eight-bit UCS Transformation Format
  • UTF-16BE: Sixteen-bit UCS Transformation Format, big-endian byte order
  • UTF-16LE: Sixteen-bit UCS Transformation Format, little-endian byte order
  • UTF-16: Sixteen-bit UCS Transformation Format, byte order identified by an optional byte-order mark.

Syntax:

public byte[] getBytes(Charset charset)

Parameter: This function takes one argument, that is the charset which is used to encode the string 

Return type: This function returns the resulting byte array. 

Note:

  • This method always replaces malformed input and unmappable character sequence with its charset’s default replacement byte array.
  • If the given charset is not a valid charset, then this method will throw UnsupportedEncodingException.
  • The length of the byte array is not the same as the given string, it depends upon the character encoding.

Let us discuss how to convert a string into a byte array with the help of the given examples:

Example 1:

Java




// Java program to illustrate how to
// convert a string to byte array
// Using getBytes(Charset charset)
  
import java.io.*;
  
class GFG{
      
public static void main (String[] args) 
{
    
    // Initializing String 
    String ss = "Hello GeeksforGeeks";
      
    // Display the string before conversion
    System.out.println("String: " + ss);
      
    try
    
        
        // Converting string to byte array
        // Using getBytes(Charset charset) method
        // Here, we converts into UTF-16 values
        byte[] res = ss.getBytes("UTF-16"); 
  
        // Displaying converted string after conversion 
        // into UTF-16 
        System.out.println("Result : "); 
        
        for(int i = 0; i < res.length; i++)
        {
            System.out.print(res[i]); 
        
        
    
    catch (UnsupportedEncodingException g) 
    {
        System.out.println("Unsupported character set" + g); 
    
}
}


Output

String: Hello GeeksforGeeks
Result : 
-2-1072010101080108011103207101010101010701150102011101140710101010101070115

Example 2:

Java




// Java program to illustrate how to
// convert a string to byte array
// Using getBytes(Charset charset)
  
import java.io.*;
import java.util.Arrays;
  
class GFG{
      
public static void main (String[] args) 
{
      
    // Initializing String 
    String ss = "Hello GFG";
      
    // Display the string before conversion
    System.out.println("String: " + ss);
      
    try
    
        // Converting string to byte array
        // Using getBytes(Charset charset) method
        // Here, we converts into US-ASCII values
        byte[] res = ss.getBytes("US-ASCII"); 
  
        // Displaying converted string after conversion 
        // into US-ASCII 
        System.out.println("Byte Array:" + Arrays.toString(res));
    
    
    catch (UnsupportedEncodingException g) 
    {
        System.out.println("Unsupported character set" + g); 
    
}
}


Output

String: Hello GFG
Byte Array:[72, 101, 108, 108, 111, 32, 71, 70, 71]


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads