Strings in Java
Strings in Java are Objects that are backed internally by a char array. Since arrays are
immutable(cannot grow), Strings are immutable as well. Whenever a change to a String is made,
an entirely new String is created.
Below is the basic syntax for declaring a string in Java programming language.
Syntax:
<String_Type> <string_variable> = “<sequence_of_string>”;
Example:
String str = "Geeks";
Memory allotment of String
Whenever a String Object is created, two objects will be created- one in the Heap Area and one
in the String constant pool and the String object reference always points to heap area object.
For example:
String str = "Geeks";
Top of Form
Bottom of Form
An Example that shows how to declare String
Memory allotment of String
Whenever a String Object is created, two objects will be created- one in the Heap Area and one
in the String constant pool and the String object reference always points to heap area object.
For example:
String str = "Geeks";
// Java code to illustrate String
import java.io.*;
import java.lang.*;
class Test {
public static void main(String[] args)
// Declare String without using new
operator
String s = "GeeksforGeeks";
// Prints the String.
System.out.println("String s = " + s);
// Declare String using new operator
String s1 = new String("GeeksforGeeks");
// Prints the String.
System.out.println("String s1 = " + s1);
Output:
String s = GeeksforGeeks
String s1 = GeeksforGeeks
Interfaces and Classes in Strings in Java
● CharBuffer: This class implements the CharSequence interface. This class is used to allow
character buffers to be used in place of CharSequences. An example of such usage is the regular-
expression package java.util.regex.
● String: S
Creating a String
There are two ways to create string in Java:
● String literal
String s = “GeeksforGeeks”;
● Using new keyword
String s = new String (“GeeksforGeeks”);
StringBuffer: StringBuffer is a peer class of String that provides much of the functionality of
strings. String represents fixed-length, immutable character sequences while StringBuffer
represents growable and writable character sequences.
Syntax:
StringBuffer s = new StringBuffer("GeeksforGeeks");
StringBuilder: The StringBuilder in Java represents a mutable sequence of characters. Since
the String Class in Java creates and immutable sequence of characters, the StringBuilder class
provides an alternate to String Class, as it creates a mutable sequence of characters.
Syntax:
StringBuilder str = new StringBuilder();
str.append("GFG");
StringTokenizer
StringTokenizer class in Java is used to break a string into tokens.
● A StringTokenizer object internally maintains a current position within the string to be
tokenized. Some operations advance this current position past the characters processed.
A token is returned by taking a substring of the string that was used to create the
StringTokenizer object.
● StringJoiner: StringJoiner is a class in java.util package which is used to construct a sequence of
characters(strings) separated by a delimiter and optionally starting with a supplied prefix and
ending with a supplied suffix. Though this can also be with the help of StringBuilder class to
append delimiter after each string, StringJoiner provides an easy way to do that without much
code to write.
Syntax:
public StringJoiner(CharSequence delimiter)