String in Java. Tutorial and Examples

Strings are used for storing text.

In this tutorial, we will learn about Java Strings, how to create them, and various methods of String with the help of examples.

The class String includes methods for examining individual characters of the sequence, for comparing strings, for searching strings, for extracting substrings, and for creating a copy of a string with all characters translated to uppercase or to lowercase.

What is String in java

Generally, String is a sequence of characters. But in Java, string is an object that represents a sequence of characters. The java.lang.String class is used to create a string object.

Strings in Java are not primitive types (like intchar, etc). Instead, all strings are objects of a predefined class named String.

And, all string variables are instances of the String class.

Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared. For example:

String str = "abc";
String str = "Good Morning!";

is equivalent to:

char data[] = {'G', 'o', 'o','d',' ','M','o','r','n','i','n','g','!'};
String str = new String(data);

Beginning with JDK 9, all of java.lang is part of the java.base module.

Java Platform, Standard Edition & Java Development Kit Version 16 API Specification
Module java.base
Package java.lang
Class String

Because String objects are immutable, whenever you want to modify a String, you must either copy it into a StringBuffer or StringBuilder, or use a String method that constructs a new copy of the string with your modifications complete.

Constructor Summary

ConstructorDescription
String()Initializes a newly created String object so that it represents an empty character sequence.
String​(byte[] bytes)Constructs a new String by decoding the specified array of bytes using the platform’s default charset.
String​(byte[] ascii, int hibyte)Deprecated. This method does not properly convert bytes into characters.
String​(byte[] bytes, int offset, int length)Constructs a new String by decoding the specified subarray of bytes using the platform’s default charset.
String​(byte[] ascii, int hibyte, int offset, int count)Deprecated. This method does not properly convert bytes into characters.
String​(byte[] bytes, int offset, int length, String charsetName)Constructs a new String by decoding the specified subarray of bytes using the specified charset.
String​(byte[] bytes, int offset, int length, Charset charset)Constructs a new String by decoding the specified subarray of bytes using the specified charset.
String​(byte[] bytes, String charsetName)Constructs a new String by decoding the specified array of bytes using the specified charset.
String​(byte[] bytes, Charset charset)Constructs a new String by decoding the specified array of bytes using the specified charset.
String​(char[] value)Allocates a new String so that it represents the sequence of characters currently contained in the character array argument.
String​(char[] value, int offset, int count)Allocates a new String that contains characters from a subarray of the character array argument.
String​(int[] codePoints, int offset, int count)Allocates a new String that contains characters from a subarray of the Unicode code point array argument.
String​(String original)Initializes a newly created String object so that it represents the same sequence of characters as the argument; in other words, the newly created string is a copy of the argument string.
String​(StringBuffer buffer)Allocates a new string that contains the sequence of characters currently contained in the string buffer argument.
String​(StringBuilder builder)Allocates a new string that contains the sequence of characters currently contained in the string builder argument.

Method Summary

Modifier and TypeMethodDescription
charcharAt​(int index)Returns the char value at the specified index.
IntStream chars()Returns a stream of int zero-extending the char values from this sequence.
int
codePointAt​(int index)Returns the character (Unicode code point) at the specified index.
int
codePointBefore​(int index)Returns the character (Unicode code point) before the specified index.
int
codePointCount​(int beginIndex, int endIndex)Returns the number of Unicode code points in the specified text range of this String.
IntStream
codePoints()Returns a stream of code point values from this sequence.
int
compareTo​(String anotherString)Compares two strings lexicographically.
int

compareToIgnoreCase​(String str)
Compares two strings lexicographically, ignoring case differences.
String

concat​(String str)
Concatenates the specified string to the end of this string.
boolean

contains​(CharSequence s)
Returns true if and only if this string contains the specified sequence of char values.
boolean

contentEquals​(CharSequence cs)
Compares this string to the specified CharSequence.
boolean

contentEquals​(StringBuffer sb)
Compares this string to the specified StringBuffer.
static String

copyValueOf​(char[] data)
Equivalent to valueOf(char[]).
static String

copyValueOf​(char[] data, int offset, int count)
Equivalent to valueOf(char[], int, int).
Optional<String>

describeConstable()
Returns an Optional containing the nominal descriptor for this instance, which is the instance itself.
boolean

endsWith​(String suffix)
Tests if this string ends with the specified suffix.
boolean

equals​(Object anObject)
Compares this string to the specified object.
boolean

equalsIgnoreCase​(String anotherString)
Compares this String to another String, ignoring case considerations.
static String

format​(String format, Object… args)
Returns a formatted string using the specified format string and arguments.
static String

format​(Locale l, String format, Object… args)
Returns a formatted string using the specified locale, format string, and arguments.
String
formatted​(Object… args)
Formats using this string as the format string, and the supplied arguments.
byte[]

getBytes()
Encodes this String into a sequence of bytes using the platform’s default charset, storing the result into a new byte array.
void

getBytes​(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
Deprecated.This method does not properly convert characters into bytes.
byte[]

getBytes​(String charsetName)
Encodes this String into a sequence of bytes using the named charset, storing the result into a new byte array.
byte[]
getBytes​(Charset charset)Encodes this String into a sequence of bytes using the given charset, storing the result into a new byte array.
void

getChars​(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Copies characters from this string into the destination character array.
int

hashCode()
Returns a hash code for this string.
String

indent​(int n)
Adjusts the indentation of each line of this string based on the value of n, and normalizes line termination characters.
int

indexOf​(int ch)
Returns the index within this string of the first occurrence of the specified character.
int

indexOf​(int ch, int fromIndex)
Returns the index within this string of the first occurrence of the specified character, starting the search at the specified index.
int

indexOf​(String str)
Returns the index within this string of the first occurrence of the specified substring.
int

indexOf​(String str, int fromIndex)
Returns the index within this string of the first occurrence of the specified substring, starting at the specified index.
String
intern()
Returns a canonical representation for the string object.
boolean

isBlank()
Returns true if the string is empty or contains only white space codepoints, otherwise false.
boolean

isEmpty()
Returns true if, and only if, length() is 0.
static String

join​(CharSequence delimiter, CharSequence… elements)
Returns a new String composed of copies of the CharSequence elements joined together with a copy of the specified delimiter.
static String

join​(CharSequence delimiter, Iterable<? extends CharSequence> elements)
Returns a new String composed of copies of the CharSequence elements joined together with a copy of the specified delimiter.
int

lastIndexOf​(int ch)
Returns the index within this string of the last occurrence of the specified character.
int

lastIndexOf​(int ch, int fromIndex)
Returns the index within this string of the last occurrence of the specified character, searching backward starting at the specified index.
int

lastIndexOf​(String str)
Returns the index within this string of the last occurrence of the specified substring.
int

lastIndexOf​(String str, int fromIndex)
Returns the index within this string of the last occurrence of the specified substring, searching backward starting at the specified index.
int

length()
Returns the length of this string.
Stream<String>

lines()
Returns a stream of lines extracted from this string, separated by line terminators.
boolean

matches​(String regex)
Tells whether or not this string matches the given regular expression.
int

offsetByCodePoints ​(int index, int codePointOffset)
Returns the index within this String that is offset from the given index by codePointOffset code points.
boolean

regionMatches​(boolean ignoreCase, int toffset, String other, int ooffset, int len)
Tests if two string regions are equal.

boolean

regionMatches​(int toffset, String other, int ooffset, int len)
Tests if two string regions are equal.
String

repeat​(int count)
Returns a string whose value is the concatenation of this string repeated count times.

String

replace​(char oldChar, char newChar)
Returns a string resulting from replacing all occurrences of oldChar in this string with newChar.

String

replace​(CharSequence target, CharSequence replacement)
Replaces each substring of this string that matches the literal target sequence with the specified literal replacement sequence.

String

replaceAll​(String regex, String replacement)
Replaces each substring of this string that matches the given regular expression with the given replacement.

String

replaceFirst​(String regex, String replacement)
Replaces the first substring of this string that matches the given regular expression with the given replacement.

String

resolveConstantDesc​(MethodHandles.Lookup lookup)
Resolves this instance as a ConstantDesc, the result of which is the instance itself.

String[]

split​(String regex)
Splits this string around matches of the given regular expression.

String[]

split​(String regex, int limit)
Splits this string around matches of the given regular expression.

boolean

startsWith​(String prefix)
Tests if this string starts with the specified prefix.

boolean

startsWith​(String prefix, int toffset)
Tests if the substring of this string beginning at the specified index starts with the specified prefix.

String

strip()
Returns a string whose value is this string, with all leading and trailing white space removed.

String

stripIndent()
Returns a string whose value is this string, with incidental white space removed from the beginning and end of every line.

String

stripLeading()
Returns a string whose value is this string, with all leading white space removed.

String

stripTrailing()
Returns a string whose value is this string, with all trailing white space removed.

CharSequence

subSequence​(int beginIndex, int endIndex)
Returns a character sequence that is a subsequence of this sequence.

String

substring​(int beginIndex)
Returns a string that is a substring of this string.

String

substring​(int beginIndex, int endIndex)
Returns a string that is a substring of this string.

char[]

toCharArray()
Converts this string to a new character array.

String

toLowerCase()
Converts all of the characters in this String to lower case using the rules of the default locale.

String

toLowerCase​(Locale locale)
Converts all of the characters in this String to lower case using the rules of the given Locale.

String

toString()
This object (which is already a string!)

String

toUpperCase()
Converts all of the characters in this String to upper case using the rules of the default locale.

String

toUpperCase​(Locale locale)
Converts all of the characters in this String to upper case using the rules of the given Locale.

<R> R

transform​(Function<? super String,​? extends R> f)
This method allows the application of a function to this string.

String

translateEscapes()
Returns a string whose value is this string, with escape sequences translated as if in a string literal.

String

trim()
Returns a string whose value is this string, with all leading and trailing space removed, where space is defined as any character whose codepoint is less than or equal to ‘U+0020’ (the space character).
static 
String
valueOf​(boolean b)
Returns the string representation of the boolean argument.

static 
String
valueOf​(char c)
Returns the string representation of the char argument.

static 
String
valueOf​(char[] data)
Returns the string representation of the char array argument.

static 
String
valueOf​(char[] data, int offset, int count)
Returns the string representation of a specific subarray of the char array argument.

static 
String
valueOf​(double d)
Returns the string representation of the double argument.

static 
String
valueOf​(float f)
Returns the string representation of the float argument.

static 
String
valueOf​(int i)
Returns the string representation of the int argument.

static
 String
valueOf​(long l)
Returns the string representation of the long argument.

static
 String
valueOf​(Object obj)
Returns the string representation of the Object argument.


Java String Examples

Here are some more examples of how strings can be used:

     System.out.println("abc");
     String cde = "cde";
     System.out.println("abc" + cde);
     String c = "abc".substring(2, 3);
     String d = cde.substring(1, 2);