public final class String extends Object implements Serializable, Comparable<String>, CharSequence
chars.
See Character for details about the relationship between char and
Unicode code points.StringBuffer,
StringBuilder,
Charset,
Serialized Form| Modifier and Type | Field and Description |
|---|---|
static Comparator<String> |
CASE_INSENSITIVE_ORDER
Compares strings using
compareToIgnoreCase(java.lang.String). |
| Constructor and Description |
|---|
String()
Creates an empty string.
|
String(byte[] data)
Converts the byte array to a string using the system's
default charset. |
String(byte[] data,
Charset charset)
Converts the byte array to a String using the given charset.
|
String(byte[] data,
int high)
Deprecated.
Use
String(byte[]) or String(byte[], String) instead. |
String(byte[] data,
int offset,
int byteCount)
Converts a subsequence of the byte array to a string using the system's
default charset. |
String(byte[] data,
int offset,
int byteCount,
Charset charset)
Converts the byte array to a string using the given charset.
|
String(byte[] data,
int high,
int offset,
int byteCount)
Deprecated.
Use
String(byte[], int, int) instead. |
String(byte[] data,
int offset,
int byteCount,
String charsetName)
Converts the byte array to a string using the named charset.
|
String(byte[] data,
String charsetName)
Converts the byte array to a string using the named charset.
|
String(char[] data)
Initializes this string to contain the given
chars. |
String(char[] data,
int offset,
int charCount)
Initializes this string to contain the given
chars. |
String(int[] codePoints,
int offset,
int count)
Creates a
String from the sub-array of Unicode code points. |
String(String toCopy)
Constructs a new string with the same sequence of characters as
toCopy. |
String(StringBuffer stringBuffer)
Creates a
String from the contents of the specified
StringBuffer. |
String(StringBuilder stringBuilder)
Creates a
String from the contents of the specified StringBuilder. |
| Modifier and Type | Method and Description |
|---|---|
char |
charAt(int index)
Returns the
char at index. |
int |
codePointAt(int index)
Returns the Unicode code point at the given
index. |
int |
codePointBefore(int index)
Returns the Unicode code point that precedes the given
index. |
int |
codePointCount(int start,
int end)
Calculates the number of Unicode code points between
start
and end. |
int |
compareTo(String string)
Compares this string to the given string.
|
int |
compareToIgnoreCase(String string)
Compares this string to the given string, ignoring case differences.
|
String |
concat(String string)
Concatenates this string and the specified string.
|
boolean |
contains(CharSequence cs)
Returns true if this string contains the
charss from the given CharSequence. |
boolean |
contentEquals(CharSequence cs)
Returns true if the
chars in the given CharSequence are the same
as those in this string. |
boolean |
contentEquals(StringBuffer sb)
Returns true if the
chars in the given StringBuffer are the same
as those in this string. |
static String |
copyValueOf(char[] data)
Creates a new string by copying the given
char[]. |
static String |
copyValueOf(char[] data,
int start,
int length)
Creates a new string by copying the given subsequence of the given
char[]. |
boolean |
endsWith(String suffix)
Compares the specified string to this string to determine if the
specified string is a suffix.
|
boolean |
equals(Object other)
Compares the given object to this string and returns true if they are
equal.
|
boolean |
equalsIgnoreCase(String string)
Compares the given string to this string ignoring case.
|
static String |
format(Locale locale,
String format,
Object... args)
Returns a formatted string, using the supplied format and arguments,
localized to the given locale.
|
static String |
format(String format,
Object... args)
Returns a localized formatted string, using the supplied format and arguments,
using the user's default locale.
|
byte[] |
getBytes()
Returns a new byte array containing the code points in this string encoded using the
system's
default charset. |
byte[] |
getBytes(Charset charset)
Returns a new byte array containing the code points of this string encoded using the
given charset.
|
void |
getBytes(int start,
int end,
byte[] data,
int index)
Deprecated.
Use
getBytes() or getBytes(String) |
byte[] |
getBytes(String charsetName)
Returns a new byte array containing the code points of this string encoded using the
named charset.
|
void |
getChars(int start,
int end,
char[] buffer,
int index)
Copies the given subsequence of this string to the given array
starting at the given offset.
|
int |
hashCode()
Returns an integer hash code for this object.
|
int |
indexOf(int c)
Returns the first index of the given code point, or -1.
|
int |
indexOf(int c,
int start)
Returns the next index of the given code point, or -1.
|
int |
indexOf(String string)
Returns the first index of the given string, or -1.
|
int |
indexOf(String subString,
int start)
Returns the next index of the given string in this string, or -1.
|
String |
intern()
Returns an interned string equal to this string.
|
boolean |
isEmpty()
Returns true if the length of this string 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 c)
Returns the last index of the code point
c, or -1. |
int |
lastIndexOf(int c,
int start)
Returns the last index of the code point
c, or -1. |
int |
lastIndexOf(String string)
Returns the index of the start of the last match for the given string in this string, or -1.
|
int |
lastIndexOf(String subString,
int start)
Returns the index of the start of the previous match for the given string in this string,
or -1.
|
int |
length()
Returns the number of
chars in this string. |
boolean |
matches(String regularExpression)
Tests whether this string matches the given
regularExpression. |
int |
offsetByCodePoints(int index,
int codePointOffset)
Returns the index within this object that is offset from
index by
codePointOffset code points. |
boolean |
regionMatches(boolean ignoreCase,
int thisStart,
String string,
int start,
int length)
Returns true if the given subsequence of the given string matches this string starting
at the given offset.
|
boolean |
regionMatches(int thisStart,
String string,
int start,
int length)
Returns true if the given subsequence of the given string matches this string starting
at the given offset.
|
String |
replace(char oldChar,
char newChar)
Returns a copy of this string after replacing occurrences of the given
char with another. |
String |
replace(CharSequence target,
CharSequence replacement)
Returns a copy of this string after replacing occurrences of
target replaced
with replacement. |
String |
replaceAll(String regularExpression,
String replacement)
Replaces all matches for
regularExpression within this string with the given
replacement. |
String |
replaceFirst(String regularExpression,
String replacement)
Replaces the first match for
regularExpression within this string with the given
replacement. |
String[] |
split(String regularExpression)
Splits this string using the supplied
regularExpression. |
String[] |
split(String regularExpression,
int limit)
Splits this string using the supplied
regularExpression. |
boolean |
startsWith(String prefix)
Compares the specified string to this string to determine if the
specified string is a prefix.
|
boolean |
startsWith(String prefix,
int start)
Compares the specified string to this string, starting at the specified
offset, to determine if the specified string is a prefix.
|
CharSequence |
subSequence(int start,
int end)
Equivalent to
substring(int, int) but needed to implement CharSequence. |
String |
substring(int start)
Returns a string containing a suffix of this string starting at
start. |
String |
substring(int start,
int end)
Returns a string containing the given subsequence of this string.
|
char[] |
toCharArray()
Returns a new
char array containing a copy of the chars in this string. |
String |
toLowerCase()
Converts this string to lower case, using the rules of the user's default locale.
|
String |
toLowerCase(Locale locale)
Converts this string to lower case, using the rules of
locale. |
String |
toString()
Returns this string.
|
String |
toUpperCase()
Converts this this string to upper case, using the rules of the user's default locale.
|
String |
toUpperCase(Locale locale)
Converts this this string to upper case, using the rules of
locale. |
String |
trim()
Returns a string with no code points
<= \\u0020 at
the beginning or end. |
static String |
valueOf(boolean value)
Converts the specified boolean to its string representation.
|
static String |
valueOf(char value)
Returns a new string of just the given
char. |
static String |
valueOf(char[] data)
Returns a new string containing the same
chars as the given
array. |
static String |
valueOf(char[] data,
int start,
int length)
Returns a new string containing the same
chars as the given
subset of the given array. |
static String |
valueOf(double value)
Returns the string representation of the given double.
|
static String |
valueOf(float value)
Returns the string representation of the given float.
|
static String |
valueOf(int value)
Returns the string representation of the given int.
|
static String |
valueOf(long value)
Returns the string representation of the given long.
|
static String |
valueOf(Object value)
Converts the specified object to its string representation.
|
public static final Comparator<String> CASE_INSENSITIVE_ORDER
compareToIgnoreCase(java.lang.String).
This is not suitable for case-insensitive string comparison for all locales.
Use a Collator instead.public String()
public String(byte[] data)
default charset.@Deprecated public String(byte[] data, int high)
String(byte[]) or String(byte[], String) instead.char to the specified value.data - the byte array to convert to a string.high - the high byte to use.NullPointerException - if data == null.public String(byte[] data,
int offset,
int byteCount)
default charset.NullPointerException - if data == null.IndexOutOfBoundsException - if byteCount < 0 || offset < 0 || offset + byteCount > data.length.@Deprecated public String(byte[] data, int high, int offset, int byteCount)
String(byte[], int, int) instead.char to high.NullPointerException - if data == null.IndexOutOfBoundsException - if byteCount < 0 || offset < 0 || offset + byteCount > data.lengthpublic String(byte[] data,
int offset,
int byteCount,
String charsetName)
throws UnsupportedEncodingException
The behavior when the bytes cannot be decoded by the named charset
is unspecified. Use CharsetDecoder for more control.
NullPointerException - if data == null.IndexOutOfBoundsException - if byteCount < 0 || offset < 0 || offset + byteCount > data.length.UnsupportedEncodingException - if the named charset is not supported.public String(byte[] data,
String charsetName)
throws UnsupportedEncodingException
The behavior when the bytes cannot be decoded by the named charset
is unspecified. Use CharsetDecoder for more control.
NullPointerException - if data == null.UnsupportedEncodingException - if charsetName is not supported.public String(byte[] data,
int offset,
int byteCount,
Charset charset)
The behavior when the bytes cannot be decoded by the given charset
is to replace malformed input and unmappable code points with the charset's default
replacement string. Use CharsetDecoder for more control.
IndexOutOfBoundsException - if byteCount < 0 || offset < 0 || offset + byteCount > data.lengthNullPointerException - if data == nullpublic String(byte[] data,
Charset charset)
NullPointerException - if data == nullpublic String(char[] data)
chars.
Modifying the array after creating the string
has no effect on the string.NullPointerException - if data == nullpublic String(char[] data,
int offset,
int charCount)
chars.
Modifying the array after creating the string
has no effect on the string.NullPointerException - if data == null.IndexOutOfBoundsException - if charCount < 0 || offset < 0 || offset + charCount > data.lengthpublic String(String toCopy)
toCopy.public String(StringBuffer stringBuffer)
String from the contents of the specified
StringBuffer.public String(int[] codePoints,
int offset,
int count)
String from the sub-array of Unicode code points.NullPointerException - if codePoints == null.IllegalArgumentException - if any of the elements of codePoints are not valid
Unicode code points.IndexOutOfBoundsException - if offset or count are not within the bounds
of codePoints.public String(StringBuilder stringBuilder)
String from the contents of the specified StringBuilder.NullPointerException - if stringBuilder == null.public char charAt(int index)
char at index.charAt in interface CharSequenceIndexOutOfBoundsException - if index < 0 or index >= length().public int compareTo(String string)
The strings are compared one char at a time.
In the discussion of the return value below, note that char does not
mean code point, though this should only be visible for surrogate pairs.
If there is an index at which the two strings differ, the result is
the difference between the two chars at the lowest such index.
If not, but the lengths of the strings differ, the result is the difference
between the two strings' lengths.
If the strings are the same length and every char is the same, the result is 0.
compareTo in interface Comparable<String>string - the object to compare to this instance.another;
a positive integer if this instance is greater than
another; 0 if this instance has the same order as
another.NullPointerException - if string is null.public int compareToIgnoreCase(String string)
The strings are compared one char at a time. This is not suitable
for case-insensitive string comparison for all locales.
Use a Collator instead.
If there is an index at which the two strings differ, the result is
the difference between the two chars at the lowest such index.
If not, but the lengths of the strings differ, the result is the difference
between the two strings' lengths.
If the strings are the same length and every char is the same, the result is 0.
NullPointerException - if string is null.public String concat(String string)
string - the string to concatenatepublic static String copyValueOf(char[] data)
char[].
Modifying the array after creating the string has no
effect on the string.NullPointerException - if data is null.public static String copyValueOf(char[] data, int start, int length)
char[].
Modifying the array after creating the string has no
effect on the string.NullPointerException - if data is null.IndexOutOfBoundsException - if length < 0, start < 0 or start + length >
data.length.public boolean endsWith(String suffix)
NullPointerException - if suffix is null.public boolean equals(Object other)
String with the same length,
where for every index, charAt on each string returns the same value.equals in class Objectother - the object to compare this instance with.true if the specified object is equal to this Object; false otherwise.Object.hashCode()public boolean equalsIgnoreCase(String string)
The strings are compared one char at a time. This is not suitable
for case-insensitive string comparison for all locales.
Use a Collator instead.
@Deprecated public void getBytes(int start, int end, byte[] data, int index)
getBytes() or getBytes(String)char. Use getBytes() or getBytes(String) instead.start - the start offset in this string.end - the end+1 offset in this string.data - the destination byte array.index - the start offset in the destination byte array.NullPointerException - if data is null.IndexOutOfBoundsException - if start < 0, end > length(), index <
0 or end - start > data.length - index.public byte[] getBytes()
default charset.
The behavior when this string cannot be represented in the system's default charset is unspecified. In practice, when the default charset is UTF-8 (as it is on Android), all strings can be encoded.
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
The behavior when this string cannot be represented in the named charset
is unspecified. Use CharsetEncoder for more control.
UnsupportedEncodingException - if the charset is not supportedpublic byte[] getBytes(Charset charset)
The behavior when this string cannot be represented in the given charset
is to replace malformed input and unmappable code points with the charset's default
replacement byte array. Use CharsetEncoder for more control.
public void getChars(int start,
int end,
char[] buffer,
int index)
start - the start offset in this string.end - the end+1 offset in this string.buffer - the destination array.index - the start offset in the destination array.NullPointerException - if buffer is null.IndexOutOfBoundsException - if start < 0, end > length(), start >
end, index < 0, end - start > buffer.length -
indexpublic int hashCode()
ObjectObject.equals(java.lang.Object) returns true must return
the same hash code value. This means that subclasses of Object
usually override both methods or neither method.
Note that hash values must not change over time unless information used in equals comparisons also changes.
See Writing a correct
hashCode method
if you intend implementing your own hashCode method.
hashCode in class ObjectObject.equals(java.lang.Object)public int indexOf(int c)
public int indexOf(int c,
int start)
public int indexOf(String string)
NullPointerException - if string is null.public int indexOf(String subString, int start)
NullPointerException - if subString is null.public String intern()
intern won't lead to unwanted retention.
Interning is typically used because it guarantees that for interned strings
a and b, a.equals(b) can be simplified to
a == b. (This is not true of non-interned strings.)
Many applications find it simpler and more convenient to use an explicit
HashMap to implement their own pools.
public boolean isEmpty()
public int lastIndexOf(int c)
c, or -1.
The search starts at the end and moves towards the
beginning of this string.public int lastIndexOf(int c,
int start)
c, or -1.
The search starts at offset start and moves towards
the beginning of this string.public int lastIndexOf(String string)
NullPointerException - if string is null.public int lastIndexOf(String subString, int start)
NullPointerException - if subString is null.public int length()
chars in this string. If this string contains surrogate pairs,
this is not the same as the number of code points.length in interface CharSequencepublic boolean regionMatches(int thisStart,
String string,
int start,
int length)
thisStart - the start offset in this string.string - the other string.start - the start offset in string.length - the number of chars to compare.NullPointerException - if string is null.public boolean regionMatches(boolean ignoreCase,
int thisStart,
String string,
int start,
int length)
If ignoreCase is true, case is ignored during the comparison.
The strings are compared one char at a time. This is not suitable
for case-insensitive string comparison for all locales.
Use a Collator instead.
ignoreCase - specifies if case should be ignored (use Collator instead for
non-ASCII case insensitivity).thisStart - the start offset in this string.string - the other string.start - the start offset in string.length - the number of chars to compare.NullPointerException - if string is null.public String replace(char oldChar, char newChar)
char with another.public String replace(CharSequence target, CharSequence replacement)
target replaced
with replacement. The string is processed from the beginning to the
end.NullPointerException - if target or replacement is null.public boolean startsWith(String prefix)
prefix - the string to look for.true if the specified string is a prefix of this string,
false otherwiseNullPointerException - if prefix is null.public boolean startsWith(String prefix, int start)
prefix - the string to look for.start - the starting offset.true if the specified string occurs in this string at the
specified offset, false otherwise.NullPointerException - if prefix is null.public String substring(int start)
start.
The returned string shares this string's backing array.IndexOutOfBoundsException - if start < 0 or start > length().public String substring(int start, int end)
start - the start offset.end - the end+1 offset.IndexOutOfBoundsException - if start < 0, start > end or end > length().public char[] toCharArray()
char array containing a copy of the chars in this string.
This is expensive and rarely useful. If you just want to iterate over the chars in
the string, use charAt(int) instead.public String toLowerCase()
this if it's already all lower case.public String toLowerCase(Locale locale)
locale.
Most case mappings are unaffected by the language of a Locale. Exceptions include
dotted and dotless I in Azeri and Turkish locales, and dotted and dotless I and J in
Lithuanian locales. On the other hand, it isn't necessary to provide a Greek locale to get
correct case mapping of Greek characters: any locale will do.
See http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt for full details of context- and language-specific special cases.
this if it's already all lower case.public String toString()
toString in interface CharSequencetoString in class Objectpublic String toUpperCase()
this if it's already all upper case.public String toUpperCase(Locale locale)
locale.
Most case mappings are unaffected by the language of a Locale. Exceptions include
dotted and dotless I in Azeri and Turkish locales, and dotted and dotless I and J in
Lithuanian locales. On the other hand, it isn't necessary to provide a Greek locale to get
correct case mapping of Greek characters: any locale will do.
See http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt for full details of context- and language-specific special cases.
this if it's already all upper case.public String trim()
<= \\u0020 at
the beginning or end.public static String valueOf(char[] data)
chars as the given
array. Modifying the array after creating the string has no
effect on the string.NullPointerException - if data is null.public static String valueOf(char[] data, int start, int length)
chars as the given
subset of the given array. Modifying the array after creating the string has no
effect on the string.IndexOutOfBoundsException - if length < 0, start < 0 or start + length > data.lengthNullPointerException - if data is null.public static String valueOf(char value)
char.public static String valueOf(double value)
public static String valueOf(float value)
public static String valueOf(int value)
public static String valueOf(long value)
public static String valueOf(Object value)
"null", otherwise use toString() to get the string representation.value - the object."null".public static String valueOf(boolean value)
true return "true", otherwise return "false".value - the boolean.public boolean contentEquals(StringBuffer sb)
chars in the given StringBuffer are the same
as those in this string.NullPointerException - if sb is null.public boolean contentEquals(CharSequence cs)
chars in the given CharSequence are the same
as those in this string.public boolean matches(String regularExpression)
regularExpression. This method returns
true only if the regular expression matches the entire input string. A common mistake is
to assume that this method behaves like contains(java.lang.CharSequence); if you want to match anywhere
within the input string, you need to add .* to the beginning and end of your
regular expression. See Pattern.matches(java.lang.String, java.lang.CharSequence).
If the same regular expression is to be used for multiple operations, it may be more
efficient to reuse a compiled Pattern.
PatternSyntaxException - if the syntax of the supplied regular expression is not
valid.NullPointerException - if regularExpression == nullpublic String replaceAll(String regularExpression, String replacement)
regularExpression within this string with the given
replacement.
See Pattern for regular expression syntax.
If the same regular expression is to be used for multiple operations, it may be more
efficient to reuse a compiled Pattern.
PatternSyntaxException - if the syntax of the supplied regular expression is not
valid.NullPointerException - if regularExpression == nullPatternpublic String replaceFirst(String regularExpression, String replacement)
regularExpression within this string with the given
replacement.
See Pattern for regular expression syntax.
If the same regular expression is to be used for multiple operations, it may be more
efficient to reuse a compiled Pattern.
PatternSyntaxException - if the syntax of the supplied regular expression is not
valid.NullPointerException - if regularExpression == nullPatternpublic String[] split(String regularExpression)
regularExpression.
Equivalent to split(regularExpression, 0).
See Pattern.split(CharSequence, int) for an explanation of limit.
See Pattern for regular expression syntax.
If the same regular expression is to be used for multiple operations, it may be more
efficient to reuse a compiled Pattern.
NullPointerException - if regularExpression == nullPatternSyntaxException - if the syntax of the supplied regular expression is not
valid.Patternpublic String[] split(String regularExpression, int limit)
regularExpression.
See Pattern.split(CharSequence, int) for an explanation of limit.
See Pattern for regular expression syntax.
If the same regular expression is to be used for multiple operations, it may be more
efficient to reuse a compiled Pattern.
NullPointerException - if regularExpression == nullPatternSyntaxException - if the syntax of the supplied regular expression is not
valid.public static String join(CharSequence delimiter, CharSequence... elements)
CharSequence elements joined together with a copy of
the specified delimiter.
For example,Note that if an element is null, thenString message = String.join("-", "Java", "is", "cool"); // message returned is: "Java-is-cool"
"null" is added.delimiter - the delimiter that separates each elementelements - the elements to join together.String that is composed of the elements
separated by the delimiterNullPointerException - If delimiter or elements
is nullStringJoinerpublic static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
String composed of copies of the
CharSequence elements joined together with a copy of the
specified delimiter.
For example,Note that if an individual element isList<String> strings = List.of("Java", "is", "cool"); String message = String.join(" ", strings); //message returned is: "Java is cool" Set<String> strings = new LinkedHashSet<>(List.of("Java", "is", "very", "cool")); String message = String.join("-", strings); //message returned is: "Java-is-very-cool"
null, then "null" is added.delimiter - a sequence of characters that is used to separate each
of the elements in the resulting Stringelements - an Iterable that will have its elements
joined together.String that is composed from the elements
argumentNullPointerException - If delimiter or elements
is nulljoin(CharSequence,CharSequence...),
StringJoinerpublic CharSequence subSequence(int start, int end)
substring(int, int) but needed to implement CharSequence.subSequence in interface CharSequencestart - the start offset of the sub-sequence. It is inclusive, that
is, the index of the first character that is included in the
sub-sequence.end - the end offset of the sub-sequence. It is exclusive, that is,
the index of the first character after those that are included
in the sub-sequenceIndexOutOfBoundsException - if start < 0, end < 0, start > end or
end > length().CharSequence.subSequence(int, int)public int codePointAt(int index)
index.IndexOutOfBoundsException - if index < 0 || index >= length()Character.codePointAt(char[], int, int)public int codePointBefore(int index)
index.IndexOutOfBoundsException - if index < 1 || index > length()Character.codePointBefore(char[], int, int)public int codePointCount(int start,
int end)
start
and end.start - the inclusive beginning index of the subsequence.end - the exclusive end index of the subsequence.IndexOutOfBoundsException - if start < 0 || end > length() || start > endCharacter.codePointCount(CharSequence, int, int)public boolean contains(CharSequence cs)
charss from the given CharSequence.public int offsetByCodePoints(int index,
int codePointOffset)
index by
codePointOffset code points.index - the index within this object to calculate the offset from.codePointOffset - the number of code points to count.IndexOutOfBoundsException - if index is negative or greater than length()
or if there aren't enough code points before or after index to match codePointOffset.public static String format(String format, Object... args)
If you're formatting a string other than for human
consumption, you should use the format(Locale, String, Object...)
overload and supply Locale.US. See
"Be wary of the default locale".
format - the format string (see Formatter.format(java.lang.String, java.lang.Object...))args - the list of arguments passed to the formatter. If there are
more arguments than required by format,
additional arguments are ignored.NullPointerException - if format == nullIllegalFormatException - if the format is invalid.public static String format(Locale locale, String format, Object... args)
locale - the locale to apply; null value means no localization.format - the format string (see Formatter.format(java.lang.String, java.lang.Object...))args - the list of arguments passed to the formatter. If there are
more arguments than required by format,
additional arguments are ignored.NullPointerException - if format == nullIllegalFormatException - if the format is invalid.