String

The {@code String} class represents character strings. All string literals in Java programs, such as {@code "abc"}, are implemented as instances of this class. <p> 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: <blockquote><pre> String str = "abc"; </pre></blockquote><p> is equivalent to: <blockquote><pre> char data[] = {'a', 'b', 'c'}; String str = new String(data); </pre></blockquote><p> Here are some more examples of how strings can be used: <blockquote><pre> System.out.println("abc"); String cde = "cde"; System.out.println("abc" + cde); String c = "abc".substring(2,3); String d = cde.substring(1, 2); </pre></blockquote> <p> The class {@code 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. Case mapping is based on the Unicode Standard version specified by the {@link java.lang.Character Character} class. <p> The Java language provides special support for the string concatenation operator (&nbsp;+&nbsp;), and for conversion of other objects to strings. For additional information on string concatenation and conversion, see <i>The Java&trade; Language Specification</i>.

<p> Unless otherwise noted, passing a {@code null} argument to a constructor or method in this class will cause a {@link NullPointerException} to be thrown.

<p>A {@code String} represents a string in the UTF-16 format in which <em>supplementary characters</em> are represented by <em>surrogate pairs</em> (see the section <a href="Character.html#unicode">Unicode Character Representations</a> in the {@code Character} class for more information). Index values refer to {@code char} code units, so a supplementary character uses two positions in a {@code String}. <p>The {@code String} class provides methods for dealing with Unicode code points (i.e., characters), in addition to those for dealing with Unicode code units (i.e., {@code char} values).

<p>Unless otherwise noted, methods for comparing Strings do not take locale into account. The {@link java.text.Collator} class provides methods for finer-grain, locale-sensitive String comparison.

@implNote The implementation of the string concatenation operator is left to the discretion of a Java compiler, as long as the compiler ultimately conforms to <i>The Java&trade; Language Specification</i>. For example, the {@code javac} compiler may implement the operator with {@code StringBuffer}, {@code StringBuilder}, or {@code java.lang.invoke.StringConcatFactory} depending on the JDK version. The implementation of string conversion is typically through the method {@code toString}, defined by {@code Object} and inherited by all classes in Java.

@author Lee Boynton @author Arthur van Hoff @author Martin Buchholz @author Ulf Zibis @see java.lang.Object#toString() @see java.lang.StringBuffer @see java.lang.StringBuilder @see java.nio.charset.Charset @since 1.0 @jls 15.18.1 String Concatenation Operator +

final
class String : Nullable!string {}

Constructors

this
this()
Undocumented in source.
this
this(string value)
Undocumented in source.

Meta