String class in Java | Set 1

24 Nov, 2020
String is a sequence of characters. In java, objects of String are immutable which means a constant and cannot be changed once created.
Creating a String
There are two ways to create string in Java:
String literalString s = “GeeksforGeeks”;
String s = “GeeksforGeeks”;
Using new keywordString s = new String (“GeeksforGeeks”);
String s = new String (“GeeksforGeeks”);
Constructors
String(byte[] byte_arr) – Construct a new String by decoding the byte array. It uses the platform’s default character set for decoding.Example:byte[] b_arr = {71, 101, 101, 107, 115};
String s_byte =new String(b_arr); //Geeks
String(byte[] byte_arr, Charset char_set) – Construct a new String by decoding the byte array. It uses the char_set for decoding.Example:byte[] b_arr = {71, 101, 101, 107, 115};
Charset cs = Charset.defaultCharset();
String s_byte_char = new String(b_arr, cs); //Geeks
String(byte[] byte_arr, String char_set_name) – Construct a new String by decoding the byte array. It uses the char_set_name for decoding.It looks similar to the above constructs and they appear before similar functions but it takes the String(which contains char_set_name) as parameter while the above constructor takes CharSet.Example:byte[] b_arr = {71, 101, 101, 107, 115};
String s = new String(b_arr, "US-ASCII"); //Geeks
String(byte[] byte_arr, int start_index, int length) – Construct a new string from the bytes array depending on the start_index(Starting location) and length(number of characters from starting location).Example:byte[] b_arr = {71, 101, 101, 107, 115};
String s = new String(b_arr, 1, 3); // eek
String(byte[] byte_arr, int start_index, int length, Charset char_set) – Construct a new string from the bytes array depending on the start_index(Starting location) and length(number of characters from starting location).Uses char_set for decoding.Example:byte[] b_arr = {71, 101, 101, 107, 115};
Charset cs = Charset.defaultCharset();
String s = new String(b_arr, 1, 3, cs); // eek
String(byte[] byte_arr, int start_index, int length, String char_set_name) – Construct a new string from the bytes array depending on the start_index(Starting location) and length(number of characters from starting location).Uses char_set_name for decoding.Example:byte[] b_arr = {71, 101, 101, 107, 115};
String s = new String(b_arr, 1, 4, "US-ASCII"); // eeks
String(char[] char_arr) – Allocates a new String from the given Character arrayExample:char char_arr[] = {'G', 'e', 'e', 'k', 's'};
String s = new String(char_arr); //Geeks
String(char[] char_array, int start_index, int count) – Allocates a String from a given character array but choose count characters from the start_index.Example:char char_arr[] = {'G', 'e', 'e', 'k', 's'};
String s = new String(char_arr , 1, 3); //eek
String(int[] uni_code_points, int offset, int count) – Allocates a String from a uni_code_array but choose count characters from the start_index.Example:int[] uni_code = {71, 101, 101, 107, 115};
String s = new String(uni_code, 1, 3); //eek
String(StringBuffer s_buffer) – Allocates a new string from the string in s_bufferExample:StringBuffer s_buffer = new StringBuffer("Geeks");
String s = new String(s_buffer); //Geeks
String(StringBuilder s_builder) – Allocates a new string from the string in s_builderExample:StringBuilder s_builder = new StringBuilder("Geeks");
String s = new String(s_builder); //Geeks

String(byte[] byte_arr) – Construct a new String by decoding the byte array. It uses the platform’s default character set for decoding.Example:byte[] b_arr = {71, 101, 101, 107, 115};
String s_byte =new String(b_arr); //Geeks

byte[] b_arr = {71, 101, 101, 107, 115};
String s_byte =new String(b_arr); //Geeks

String(byte[] byte_arr, Charset char_set) – Construct a new String by decoding the byte array. It uses the char_set for decoding.Example:byte[] b_arr = {71, 101, 101, 107, 115};
Charset cs = Charset.defaultCharset();
String s_byte_char = new String(b_arr, cs); //Geeks

byte[] b_arr = {71, 101, 101, 107, 115};
Charset cs = Charset.defaultCharset();
String s_byte_char = new String(b_arr, cs); //Geeks

String(byte[] byte_arr, String char_set_name) – Construct a new String by decoding the byte array. It uses the char_set_name for decoding.It looks similar to the above constructs and they appear before similar functions but it takes the String(which contains char_set_name) as parameter while the above constructor takes CharSet.Example:byte[] b_arr = {71, 101, 101, 107, 115};
String s = new String(b_arr, "US-ASCII"); //Geeks

byte[] b_arr = {71, 101, 101, 107, 115};
String s = new String(b_arr, "US-ASCII"); //Geeks

String(byte[] byte_arr, int start_index, int length) – Construct a new string from the bytes array depending on the start_index(Starting location) and length(number of characters from starting location).Example:byte[] b_arr = {71, 101, 101, 107, 115};
String s = new String(b_arr, 1, 3); // eek

byte[] b_arr = {71, 101, 101, 107, 115};
String s = new String(b_arr, 1, 3); // eek

String(byte[] byte_arr, int start_index, int length, Charset char_set) – Construct a new string from the bytes array depending on the start_index(Starting location) and length(number of characters from starting location).Uses char_set for decoding.Example:byte[] b_arr = {71, 101, 101, 107, 115};
Charset cs = Charset.defaultCharset();
String s = new String(b_arr, 1, 3, cs); // eek

byte[] b_arr = {71, 101, 101, 107, 115};
Charset cs = Charset.defaultCharset();
String s = new String(b_arr, 1, 3, cs); // eek

String(byte[] byte_arr, int start_index, int length, String char_set_name) – Construct a new string from the bytes array depending on the start_index(Starting location) and length(number of characters from starting location).Uses char_set_name for decoding.Example:byte[] b_arr = {71, 101, 101, 107, 115};
String s = new String(b_arr, 1, 4, "US-ASCII"); // eeks

byte[] b_arr = {71, 101, 101, 107, 115};
String s = new String(b_arr, 1, 4, "US-ASCII"); // eeks

String(char[] char_arr) – Allocates a new String from the given Character arrayExample:char char_arr[] = {'G', 'e', 'e', 'k', 's'};
String s = new String(char_arr); //Geeks

char char_arr[] = {'G', 'e', 'e', 'k', 's'};
String s = new String(char_arr); //Geeks

String(char[] char_array, int start_index, int count) – Allocates a String from a given character array but choose count characters from the start_index.Example:char char_arr[] = {'G', 'e', 'e', 'k', 's'};
String s = new String(char_arr , 1, 3); //eek

char char_arr[] = {'G', 'e', 'e', 'k', 's'};
String s = new String(char_arr , 1, 3); //eek

String(int[] uni_code_points, int offset, int count) – Allocates a String from a uni_code_array but choose count characters from the start_index.Example:int[] uni_code = {71, 101, 101, 107, 115};
String s = new String(uni_code, 1, 3); //eek

int[] uni_code = {71, 101, 101, 107, 115};
String s = new String(uni_code, 1, 3); //eek

String(StringBuffer s_buffer) – Allocates a new string from the string in s_bufferExample:StringBuffer s_buffer = new StringBuffer("Geeks");
String s = new String(s_buffer); //Geeks

StringBuffer s_buffer = new StringBuffer("Geeks");
String s = new String(s_buffer); //Geeks

String(StringBuilder s_builder) – Allocates a new string from the string in s_builderExample:StringBuilder s_builder = new StringBuilder("Geeks");
String s = new String(s_builder); //Geeks

StringBuilder s_builder = new StringBuilder("Geeks");
String s = new String(s_builder); //Geeks

String Methods
int length(): Returns the number of characters in the String."GeeksforGeeks".length();  // returns 13Char charAt(int i): Returns the character at ith index."GeeksforGeeks".charAt(3); // returns  ‘k’String substring (int i): Return the substring from the ith  index character to end."GeeksforGeeks".substring(3); // returns “ksforGeeks”String substring (int i, int j): Returns the substring from i to j-1 index. "GeeksforGeeks".substring(2, 5); // returns “eks”String concat( String str): Concatenates specified string to the end of this string. String s1 = ”Geeks”;
 String s2 = ”forGeeks”;
 String output = s1.concat(s2); // returns “GeeksforGeeks”
int indexOf (String s): Returns the index within the string of the first occurrence of the specified string. String s = ”Learn Share Learn”;
 int output = s.indexOf(“Share”); // returns 6
int indexOf (String s, int i): Returns the index within the string of the first occurrence of the specified string, starting at the specified index. String s = ”Learn Share Learn”;
 int output = s.indexOf("ea",3);// returns 13
Int lastIndexOf( String s): Returns the index within the string of the last occurrence of the specified string. String s = ”Learn Share Learn”;
 int output = s.lastIndexOf("a"); // returns 14
boolean equals( Object otherObj): Compares this string to the specified object. Boolean out = “Geeks”.equals(“Geeks”); // returns true
 Boolean out = “Geeks”.equals(“geeks”); // returns false
boolean  equalsIgnoreCase (String anotherString): Compares string to another string, ignoring case considerations. Boolean out= “Geeks”.equalsIgnoreCase(“Geeks”); // returns true
 Boolean out = “Geeks”.equalsIgnoreCase(“geeks”); // returns true int compareTo( String anotherString): Compares two string lexicographically. int out = s1.compareTo(s2);  // where s1 ans s2 are
                             // strings to be compared

 This returns difference s1-s2. If :
 out < 0  // s1 comes before s2
 out = 0  // s1 and s2 are equal.
 out > 0   // s1 comes after s2.
int compareToIgnoreCase( String anotherString): Compares two string lexicographically, ignoring case considerations. int out = s1.compareToIgnoreCase(s2);  
// where s1 ans s2 are 
// strings to be compared

 This returns difference s1-s2. If :
 out < 0  // s1 comes before s2
 out = 0   // s1 and s2 are equal.
 out > 0   // s1 comes after s2.
Note- In this case, it will not consider case of a letter (it will ignore whether it is uppercase or lowercase).String toLowerCase(): Converts all the characters in the String to lower case.String word1 = “HeLLo”;
String word3 = word1.toLowerCase(); // returns “hello"
String toUpperCase(): Converts all the characters in the String to upper case.String word1 = “HeLLo”;
String word2 = word1.toUpperCase(); // returns “HELLO”
String trim(): Returns the copy of the String, by removing whitespaces at both ends. It does not affect whitespaces in the middle.String word1 = “ Learn Share Learn “;
String word2 = word1.trim(); // returns “Learn Share Learn”
 String replace (char oldChar, char newChar): Returns new string by replacing all occurrences of oldChar with newChar.String s1 = “feeksforfeeks“;
String s2 = “feeksforfeeks”.replace(‘f’ ,’g’); // returns “geeksgorgeeks”
Note:- s1 is still feeksforfeeks and s2 is geeksgorgeeksProgram to illustrate all string  methods:// Java code to illustrate different constructors and methods // String class.  import java.io.*;import java.util.*;class Test{    public static void main (String[] args)    {        String s= "GeeksforGeeks";        // or String s= new String ("GeeksforGeeks");          // Returns the number of characters in the String.        System.out.println("String length = " + s.length());          // Returns the character at ith index.        System.out.println("Character at 3rd position = "                           + s.charAt(3));          // Return the substring from the ith  index character        // to end of string        System.out.println("Substring " + s.substring(3));          // Returns the substring from i to j-1 index.        System.out.println("Substring  = " + s.substring(2,5));          // Concatenates string2 to the end of string1.        String s1 = "Geeks";        String s2 = "forGeeks";        System.out.println("Concatenated string  = " +                            s1.concat(s2));          // Returns the index within the string        // of the first occurrence of the specified string.        String s4 = "Learn Share Learn";        System.out.println("Index of Share " +                            s4.indexOf("Share"));          // Returns the index within the string of the        // first occurrence of the specified string,        // starting at the specified index.        System.out.println("Index of a  = " +                            s4.indexOf('a',3));          // Checking equality of Strings        Boolean out = "Geeks".equals("geeks");        System.out.println("Checking Equality  " + out);        out = "Geeks".equals("Geeks");        System.out.println("Checking Equality  " + out);          out = "Geeks".equalsIgnoreCase("gEeks ");        System.out.println("Checking Equality " + out);                  //If ASCII difference is zero then the two strings are similar        int out1 = s1.compareTo(s2);        System.out.println("the difference between ASCII value is="+out1);        // Converting cases        String word1 = "GeeKyMe";        System.out.println("Changing to lower Case " +                            word1.toLowerCase());          // Converting cases        String word2 = "GeekyME";        System.out.println("Changing to UPPER Case " +                             word2.toUpperCase());          // Trimming the word        String word4 = " Learn Share Learn ";        System.out.println("Trim the word " + word4.trim());          // Replacing characters        String str1 = "feeksforfeeks";        System.out.println("Original String " + str1);        String str2 = "feeksforfeeks".replace('f' ,'g') ;        System.out.println("Replaced f with g -> " + str2);    } }Output :String length = 13
Character at 3rd position = k
Substring ksforGeeks
Substring = eks
Concatenated string = GeeksforGeeks
Index of Share 6
Index of a = 8
Checking Equality false
Checking Equality true
Checking Equality false
the difference between ASCII value is=-31
Changing to lower Case geekyme
Changing to UPPER Case GEEKYME
Trim the word Learn Share Learn
Original String feeksforfeeks
Replaced f with g -> geeksgorgeeks
For Set – 2 you can refer: Java.lang.String class in Java | Set 2 This article is contributed by Rahul Agrawal. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed aboveMy Personal Notes
arrow_drop_upSave
int length(): Returns the number of characters in the String."GeeksforGeeks".length();  // returns 13
"GeeksforGeeks".length();  // returns 13
Char charAt(int i): Returns the character at ith index."GeeksforGeeks".charAt(3); // returns  ‘k’
"GeeksforGeeks".charAt(3); // returns  ‘k’
String substring (int i): Return the substring from the ith  index character to end."GeeksforGeeks".substring(3); // returns “ksforGeeks”
"GeeksforGeeks".substring(3); // returns “ksforGeeks”
String substring (int i, int j): Returns the substring from i to j-1 index. "GeeksforGeeks".substring(2, 5); // returns “eks”
 "GeeksforGeeks".substring(2, 5); // returns “eks”
String concat( String str): Concatenates specified string to the end of this string. String s1 = ”Geeks”;
 String s2 = ”forGeeks”;
 String output = s1.concat(s2); // returns “GeeksforGeeks”

 String s1 = ”Geeks”;
 String s2 = ”forGeeks”;
 String output = s1.concat(s2); // returns “GeeksforGeeks”

int indexOf (String s): Returns the index within the string of the first occurrence of the specified string. String s = ”Learn Share Learn”;
 int output = s.indexOf(“Share”); // returns 6

 String s = ”Learn Share Learn”;
 int output = s.indexOf(“Share”); // returns 6

int indexOf (String s, int i): Returns the index within the string of the first occurrence of the specified string, starting at the specified index. String s = ”Learn Share Learn”;
 int output = s.indexOf("ea",3);// returns 13

 String s = ”Learn Share Learn”;
 int output = s.indexOf("ea",3);// returns 13

Int lastIndexOf( String s): Returns the index within the string of the last occurrence of the specified string. String s = ”Learn Share Learn”;
 int output = s.lastIndexOf("a"); // returns 14

 String s = ”Learn Share Learn”;
 int output = s.lastIndexOf("a"); // returns 14

boolean equals( Object otherObj): Compares this string to the specified object. Boolean out = “Geeks”.equals(“Geeks”); // returns true
 Boolean out = “Geeks”.equals(“geeks”); // returns false

 Boolean out = “Geeks”.equals(“Geeks”); // returns true
 Boolean out = “Geeks”.equals(“geeks”); // returns false

boolean  equalsIgnoreCase (String anotherString): Compares string to another string, ignoring case considerations. Boolean out= “Geeks”.equalsIgnoreCase(“Geeks”); // returns true
 Boolean out = “Geeks”.equalsIgnoreCase(“geeks”); // returns true
 Boolean out= “Geeks”.equalsIgnoreCase(“Geeks”); // returns true
 Boolean out = “Geeks”.equalsIgnoreCase(“geeks”); // returns true
 int compareTo( String anotherString): Compares two string lexicographically. int out = s1.compareTo(s2);  // where s1 ans s2 are
                             // strings to be compared

 This returns difference s1-s2. If :
 out < 0  // s1 comes before s2
 out = 0  // s1 and s2 are equal.
 out > 0   // s1 comes after s2.

 int out = s1.compareTo(s2);  // where s1 ans s2 are
                             // strings to be compared

 This returns difference s1-s2. If :
 out < 0  // s1 comes before s2
 out = 0  // s1 and s2 are equal.
 out > 0   // s1 comes after s2.

int compareToIgnoreCase( String anotherString): Compares two string lexicographically, ignoring case considerations. int out = s1.compareToIgnoreCase(s2);  
// where s1 ans s2 are 
// strings to be compared

 This returns difference s1-s2. If :
 out < 0  // s1 comes before s2
 out = 0   // s1 and s2 are equal.
 out > 0   // s1 comes after s2.
Note- In this case, it will not consider case of a letter (it will ignore whether it is uppercase or lowercase).
 int out = s1.compareToIgnoreCase(s2);  
// where s1 ans s2 are 
// strings to be compared

 This returns difference s1-s2. If :
 out < 0  // s1 comes before s2
 out = 0   // s1 and s2 are equal.
 out > 0   // s1 comes after s2.

Note- In this case, it will not consider case of a letter (it will ignore whether it is uppercase or lowercase).
String toLowerCase(): Converts all the characters in the String to lower case.String word1 = “HeLLo”;
String word3 = word1.toLowerCase(); // returns “hello"

String word1 = “HeLLo”;
String word3 = word1.toLowerCase(); // returns “hello"

String toUpperCase(): Converts all the characters in the String to upper case.String word1 = “HeLLo”;
String word2 = word1.toUpperCase(); // returns “HELLO”

String word1 = “HeLLo”;
String word2 = word1.toUpperCase(); // returns “HELLO”

String trim(): Returns the copy of the String, by removing whitespaces at both ends. It does not affect whitespaces in the middle.String word1 = “ Learn Share Learn “;
String word2 = word1.trim(); // returns “Learn Share Learn”

String word1 = “ Learn Share Learn “;
String word2 = word1.trim(); // returns “Learn Share Learn”

 String replace (char oldChar, char newChar): Returns new string by replacing all occurrences of oldChar with newChar.String s1 = “feeksforfeeks“;
String s2 = “feeksforfeeks”.replace(‘f’ ,’g’); // returns “geeksgorgeeks”
Note:- s1 is still feeksforfeeks and s2 is geeksgorgeeks
String s1 = “feeksforfeeks“;
String s2 = “feeksforfeeks”.replace(‘f’ ,’g’); // returns “geeksgorgeeks”

Note:- s1 is still feeksforfeeks and s2 is geeksgorgeeks
Program to illustrate all string  methods:
// Java code to illustrate different constructors and methods // String class.  import java.io.*;import java.util.*;class Test{    public static void main (String[] args)    {        String s= "GeeksforGeeks";        // or String s= new String ("GeeksforGeeks");          // Returns the number of characters in the String.        System.out.println("String length = " + s.length());          // Returns the character at ith index.        System.out.println("Character at 3rd position = "                           + s.charAt(3));          // Return the substring from the ith  index character        // to end of string        System.out.println("Substring " + s.substring(3));          // Returns the substring from i to j-1 index.        System.out.println("Substring  = " + s.substring(2,5));          // Concatenates string2 to the end of string1.        String s1 = "Geeks";        String s2 = "forGeeks";        System.out.println("Concatenated string  = " +                            s1.concat(s2));          // Returns the index within the string        // of the first occurrence of the specified string.        String s4 = "Learn Share Learn";        System.out.println("Index of Share " +                            s4.indexOf("Share"));          // Returns the index within the string of the        // first occurrence of the specified string,        // starting at the specified index.        System.out.println("Index of a  = " +                            s4.indexOf('a',3));          // Checking equality of Strings        Boolean out = "Geeks".equals("geeks");        System.out.println("Checking Equality  " + out);        out = "Geeks".equals("Geeks");        System.out.println("Checking Equality  " + out);          out = "Geeks".equalsIgnoreCase("gEeks ");        System.out.println("Checking Equality " + out);                  //If ASCII difference is zero then the two strings are similar        int out1 = s1.compareTo(s2);        System.out.println("the difference between ASCII value is="+out1);        // Converting cases        String word1 = "GeeKyMe";        System.out.println("Changing to lower Case " +                            word1.toLowerCase());          // Converting cases        String word2 = "GeekyME";        System.out.println("Changing to UPPER Case " +                             word2.toUpperCase());          // Trimming the word        String word4 = " Learn Share Learn ";        System.out.println("Trim the word " + word4.trim());          // Replacing characters        String str1 = "feeksforfeeks";        System.out.println("Original String " + str1);        String str2 = "feeksforfeeks".replace('f' ,'g') ;        System.out.println("Replaced f with g -> " + str2);    } }
Output :
String length = 13
Character at 3rd position = k
Substring ksforGeeks
Substring = eks
Concatenated string = GeeksforGeeks
Index of Share 6
Index of a = 8
Checking Equality false
Checking Equality true
Checking Equality false
the difference between ASCII value is=-31
Changing to lower Case geekyme
Changing to UPPER Case GEEKYME
Trim the word Learn Share Learn
Original String feeksforfeeks
Replaced f with g -> geeksgorgeeks

For Set – 2 you can refer: Java.lang.String class in Java | Set 2
 This article is contributed by Rahul Agrawal. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
AditiSinghai
veervikram
samarthbais255
basic_s
Java-lang package
Java-Strings
Java
School Programming
Strings
Java-Strings
Strings
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Split() String method in Java with examples
Arrays.sort() in Java with examples
Reverse a string in Java
How to iterate any Map in Java
Stream In Java
Python Dictionary
Arrays in C/C++
Reverse a string in Java
Introduction To PYTHON
Inheritance in C++