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
int
,char
, etc). Instead, all strings are objects of a predefined class namedString
.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
Constructor | Description |
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 Type | Method | Description |
char | charAt(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);