- java.lang.Object
-
- java.lang.String
-
- 实现的所有接口
-
Serializable
,CharSequence
,Comparable<String>
public final class String extends Object implements Serializable, Comparable<String>, CharSequence
String
类表示字符串。 Java程序中的所有字符串文字(例如"abc"
)都实现为此类的实例。字符串是不变的; 它们的值在创建后无法更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,所以可以共享它们。 例如:
String str = "abc";
相当于:
char data[] = {'a', 'b', 'c'}; String str = new String(data);
以下是一些如何使用字符串的示例:
System.out.println("abc"); String cde = "cde"; System.out.println("abc" + cde); String c = "abc".substring(2,3); String d = cde.substring(1, 2);
类
String
包括用于检查序列的各个字符,用于比较字符串,用于搜索字符串,用于提取子字符串以及用于创建具有被翻译为大写或小写的所有字符的字符串的副本的方法。 案例映射基于Character
类指定的Unicode标准版本。Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串。 有关字符串连接和转换的其他信息,请参阅Java语言规范 。
除非另有说明,否则将
null
参数传递给null
中的构造函数或方法将导致抛出NullPointerException
。甲
String
表示,其中补充字符由代理对表示的UTF-16格式的字符串(请参见第Unicode Character Representations在Character
以获取更多信息类)。 索引值是指char
代码单位,因此补充字符在String
使用两个位置。String
类提供了处理Unicode代码点(即字符)的方法,以及处理Unicode代码单元(即char
值)的方法。除非另有说明,否则比较字符串的方法不会考虑区域设置。
Collator
类提供了更细粒度,区域敏感的String比较方法。- Implementation Note:
-
只要编译器最终符合Java的语言规范 ,字符串连接运算符的实现由Java编译器决定。
例如,
javac
编译器可实现运营商StringBuffer
,StringBuilder
,或java.lang.invoke.StringConcatFactory
取决于JDK版本。 字符串转换的实现通常是通过方法toString
,由Object
定义并由Java中的所有类继承。 - 从以下版本开始:
- 1.0
- 另请参见:
-
Object.toString()
,StringBuffer
,StringBuilder
,Charset
, Serialized Form - See The Java™ Language Specification:
- 15.18.1字符串连接运算符+
-
-
字段汇总
字段 变量和类型 字段 描述 static Comparator<String>
CASE_INSENSITIVE_ORDER
由compareToIgnoreCase
订购String
对象的比较compareToIgnoreCase
。
-
构造方法摘要
构造方法 构造器 描述 String()
初始化新创建的String
对象,使其表示空字符序列。String(byte[] bytes)
通过使用平台的默认字符集解码指定的字节数组构造新的String
。String(byte[] ascii, int hibyte)
已过时。此方法无法将字节正确转换为字符。String(byte[] bytes, int offset, int length)
通过使用平台的默认字符集解码指定的字节子阵列来构造新的String
。String(byte[] ascii, int hibyte, int offset, int count)
已过时。此方法无法将字节正确转换为字符。String(byte[] bytes, int offset, int length, String charsetName)
通过使用指定的字符集解码指定的字节子String
构造新的String
。String(byte[] bytes, int offset, int length, Charset charset)
String(byte[] bytes, String charsetName)
构造一个新的String
由指定用指定的字节的数组解码charset 。String(byte[] bytes, Charset charset)
构造一个新的String
由指定用指定的字节的数组解码charset 。String(char[] value)
分配新的String
,使其表示当前包含在字符数组参数中的字符序列。String(char[] value, int offset, int count)
分配一个新的String
,其中包含字符数组参数的子数组中的字符。String(int[] codePoints, int offset, int count)
分配新的String
,其中包含 Unicode code point数组参数的子数组中的字符。String(String original)
初始化新创建的String
对象,使其表示与参数相同的字符序列; 换句话说,新创建的字符串是参数字符串的副本。String(StringBuffer buffer)
分配一个新字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。String(StringBuilder builder)
分配一个新字符串,其中包含当前包含在字符串构建器参数中的字符序列。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 弃用的方法 变量和类型 方法 描述 char
charAt(int index)
返回指定索引处的char
值。IntStream
chars()
返回int
的流,将此序列中的char
值零扩展。int
codePointAt(int index)
返回指定索引处的字符(Unicode代码点)。int
codePointBefore(int index)
返回指定索引之前的字符(Unicode代码点)。int
codePointCount(int beginIndex, int endIndex)
返回此String
的指定文本范围内的Unicode代码点数。IntStream
codePoints()
返回此序列中的代码点值流。int
compareTo(String anotherString)
按字典顺序比较两个字符串。int
compareToIgnoreCase(String str)
按字典顺序比较两个字符串,忽略大小写差异。String
concat(String str)
将指定的字符串连接到此字符串的末尾。boolean
contains(CharSequence s)
当且仅当此字符串包含指定的char值序列时,才返回true。boolean
contentEquals(CharSequence cs)
将此字符串与指定的CharSequence
。boolean
contentEquals(StringBuffer sb)
将此字符串与指定的StringBuffer
。static String
copyValueOf(char[] data)
相当于valueOf(char[])
。static String
copyValueOf(char[] data, int offset, int count)
boolean
endsWith(String suffix)
测试此字符串是否以指定的后缀结尾。boolean
equals(Object anObject)
将此字符串与指定的对象进行比较。boolean
equalsIgnoreCase(String anotherString)
将此String
与另一个String
比较,忽略了大小写。static String
format(String format, Object... args)
使用指定的格式字符串和参数返回格式化字符串。static String
format(Locale l, String format, Object... args)
使用指定的语言环境,格式字符串和参数返回格式化的字符串。byte[]
getBytes()
使用平台的默认字符集将此String
编码为字节序列,将结果存储到新的字节数组中。void
getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
已过时。此方法无法将字符正确转换为字节。byte[]
getBytes(String charsetName)
使用命名的字符集将此String
编码为字节序列,将结果存储到新的字节数组中。byte[]
getBytes(Charset charset)
使用给定的charset将此String
编码为字节序列,将结果存储到新的字节数组中。void
getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将此字符串中的字符复制到目标字符数组中。int
hashCode()
返回此字符串的哈希码。int
indexOf(int ch)
返回指定字符第一次出现的字符串中的索引。int
indexOf(int ch, int fromIndex)
返回指定字符第一次出现的此字符串中的索引,从指定索引处开始搜索。int
indexOf(String str)
返回指定子字符串第一次出现的字符串中的索引。int
indexOf(String str, int fromIndex)
从指定的索引处开始,返回指定子字符串第一次出现的字符串中的索引。String
intern()
返回字符串对象的规范表示。boolean
isBlank()
boolean
isEmpty()
static String
join(CharSequence delimiter, CharSequence... elements)
返回由CharSequence elements
的副本组成的新String,该副本与指定的delimiter
的副本连接在一起。static String
join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
返回由String
的副本组成的新String
,其中CharSequence elements
指定的delimiter
的副本。int
lastIndexOf(int ch)
返回指定字符最后一次出现的字符串中的索引。int
lastIndexOf(int ch, int fromIndex)
返回指定字符最后一次出现的字符串中的索引,从指定的索引开始向后搜索。int
lastIndexOf(String str)
返回指定子字符串最后一次出现的字符串中的索引。int
lastIndexOf(String str, int fromIndex)
返回指定子字符串最后一次出现的字符串中的索引,从指定索引开始向后搜索。int
length()
返回此字符串的长度。Stream<String>
lines()
返回从此字符串中提取的行的流,由行终止符分隔。boolean
matches(String regex)
判断此字符串是否与给定的 regular expression匹配。int
offsetByCodePoints(int index, int codePointOffset)
返回此String
中的索引,该索引从给定的index
偏移codePointOffset
代码点。boolean
regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。boolean
regionMatches(int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。String
repeat(int count)
返回一个字符串,其值为此字符串的串联重复count
次。String
replace(char oldChar, char newChar)
返回从替换所有出现的导致一个字符串oldChar
在此字符串newChar
。String
replace(CharSequence target, CharSequence replacement)
将此字符串中与文字目标序列匹配的每个子字符串替换为指定的文字替换序列。String
replaceAll(String regex, String replacement)
将给定替换的给定 regular expression匹配的此字符串的每个子字符串替换。String
replaceFirst(String regex, String replacement)
将给定替换的给定 regular expression匹配的此字符串的第一个子字符串替换。String[]
split(String regex)
将此字符串拆分为给定 regular expression的匹配 项 。String[]
split(String regex, int limit)
将此字符串拆分为给定 regular expression的匹配 项 。boolean
startsWith(String prefix)
测试此字符串是否以指定的前缀开头。boolean
startsWith(String prefix, int toffset)
测试从指定索引开始的此字符串的子字符串是否以指定的前缀开头。String
strip()
返回一个字符串,其值为此字符串,并删除了所有前导和尾随white space
。String
stripLeading()
返回一个字符串,其值为此字符串,并删除了所有前导white space
。String
stripTrailing()
返回一个字符串,其值为此字符串,并删除所有尾随white space
。CharSequence
subSequence(int beginIndex, int endIndex)
返回作为此序列的子序列的字符序列。String
substring(int beginIndex)
返回一个字符串,该字符串是此字符串的子字符串。String
substring(int beginIndex, int endIndex)
返回一个字符串,该字符串是此字符串的子字符串。char[]
toCharArray()
将此字符串转换为新的字符数组。String
toLowerCase()
使用默认语言环境的规则将此String
所有字符转换为小写。String
toLowerCase(Locale locale)
使用给定Locale
的规则将此String
所有字符转换为Locale
。String
toString()
这个对象(已经是一个字符串!)String
toUpperCase()
使用默认语言环境的规则将此String
所有字符转换为大写。String
toUpperCase(Locale locale)
使用给定Locale
的规则将此String
所有字符转换为大写。String
trim()
返回一个字符串,其值为此字符串,删除了所有前导和尾随空格,其中space被定义为其代码点小于或等于'U+0020'
(空格字符)的任何字符。static String
valueOf(boolean b)
返回boolean
参数的字符串表示形式。static String
valueOf(char c)
返回char
参数的字符串表示形式。static String
valueOf(char[] data)
返回char
数组参数的字符串表示形式。static String
valueOf(char[] data, int offset, int count)
返回char
数组参数的特定子数组的字符串表示形式。static String
valueOf(double d)
返回double
参数的字符串表示形式。static String
valueOf(float f)
返回float
参数的字符串表示形式。static String
valueOf(int i)
返回int
参数的字符串表示形式。static String
valueOf(long l)
返回long
参数的字符串表示形式。static String
valueOf(Object obj)
返回Object
参数的字符串表示形式。
-
-
-
字段详细信息
-
CASE_INSENSITIVE_ORDER
public static final Comparator<String> CASE_INSENSITIVE_ORDER
由compareToIgnoreCase
订购String
对象的比较compareToIgnoreCase
。 该比较器是可序列化的。请注意,此比较器不会考虑区域设置,并且会导致某些区域设置的排序不令人满意。
Collator
类提供区域设置敏感的比较。- 从以下版本开始:
- 1.2
- 另请参见:
-
Collator
-
-
构造方法详细信息
-
String
public String()
初始化新创建的String
对象,使其表示空字符序列。 请注意,由于字符串是不可变的,因此不必使用此构造函数。
-
String
public String(String original)
初始化新创建的String
对象,使其表示与参数相同的字符序列; 换句话说,新创建的字符串是参数字符串的副本。 除非需要original
的显式副本,original
不必使用此构造函数,因为字符串是不可变的。- 参数
-
original
- AString
-
String
public String(char[] value)
分配新的String
,使其表示当前包含在字符数组参数中的字符序列。 复制字符数组的内容; 后续修改字符数组不会影响新创建的字符串。- 参数
-
value
- 字符串的初始值
-
String
public String(char[] value, int offset, int count)
分配一个新的String
,其中包含字符数组参数的子数组中的字符。offset
参数是子count
的第一个字符的索引,count
参数指定子count
的长度。 复制子阵列的内容; 后续修改字符数组不会影响新创建的字符串。- 参数
-
value
- 作为字符源的数组 -
offset
- 初始偏移量 -
count
- 长度 - 异常
-
IndexOutOfBoundsException
- 如果offset
为负数,则count
为负数,或offset
为大于value.length - count
-
String
public String(int[] codePoints, int offset, int count)
分配一个新的String
,其中包含Unicode code point数组参数的子数组中的字符。offset
参数是子count
的第一个代码点的索引,count
参数指定子count
的长度。 子阵列的内容转换为char
s; 后续修改int
数组不会影响新创建的字符串。- 参数
-
codePoints
- 作为Unicode代码点源的数组 -
offset
- 初始偏移量 -
count
- 长度 - 异常
-
IllegalArgumentException
- 如果在codePoints
找到任何无效的Unicode代码点 -
IndexOutOfBoundsException
- 如果offset
为负数,则count
为负数,或offset
为大于codePoints.length - count
- 从以下版本开始:
- 1.5
-
String
@Deprecated(since="1.1") public String(byte[] ascii, int hibyte, int offset, int count)
Deprecated.This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via theString
constructors that take aCharset
, charset name, or that use the platform's default charset.分配一个由8位整数值数组的子阵列构成的新String
。offset
参数是子count
的第一个字节的索引,count
参数指定子count
的长度。每个
byte
在子阵列被转换为char
作为指定String(byte[],int)
构造。- 参数
-
ascii
- 要转换为字符的字节数 -
hibyte
- 每个16位Unicode代码单元的前8位 -
offset
- 初始偏移量 -
count
- 长度 - 异常
-
IndexOutOfBoundsException
- 如果offset
为负数,count
为负数,或offset
为负ascii.length - count
- 另请参见:
-
String(byte[], int)
,String(byte[], int, int, java.lang.String)
,String(byte[], int, int, java.nio.charset.Charset)
,String(byte[], int, int)
,String(byte[], java.lang.String)
,String(byte[], java.nio.charset.Charset)
,String(byte[])
-
String
@Deprecated(since="1.1") public String(byte[] ascii, int hibyte)
Deprecated.This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via theString
constructors that take aCharset
, charset name, or that use the platform's default charset.分配一个新的String
其中包含由8位整数值数组String
的字符。 结果字符串中的每个字符c都是从字节数组中的相应组件b构造的,这样:c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
- 参数
-
ascii
- 要转换为字符的字节数 -
hibyte
- 每个16位Unicode代码单元的前8位 - 另请参见:
-
String(byte[], int, int, java.lang.String)
,String(byte[], int, int, java.nio.charset.Charset)
,String(byte[], int, int)
,String(byte[], java.lang.String)
,String(byte[], java.nio.charset.Charset)
,String(byte[])
-
String
public String(byte[] bytes, int offset, int length, String charsetName) throws UnsupportedEncodingException
通过使用指定的字符集解码指定的字节子String
构造新的String
。 新的String
的长度是字符集的函数,因此可能不等于子阵列的长度。当给定字节在给定字符集中无效时,此构造函数的行为未指定。 当需要更多地控制解码过程时,应使用
CharsetDecoder
类。- 参数
-
bytes
- 要解码为字符的字节 -
offset
- 要解码的第一个字节的索引 -
length
- 要解码的字节数 -
charsetName
- 支持的charset的名称 - 异常
-
UnsupportedEncodingException
- 如果不支持指定的字符集 -
IndexOutOfBoundsException
- 如果offset
为负数,length
为负数,或offset
为大于bytes.length - length
- 从以下版本开始:
- 1.1
-
String
public String(byte[] bytes, int offset, int length, Charset charset)
构造一个新的String
通过使用指定的指定字节子阵列解码charset 。 新String
的长度是字符集的函数,因此可能不等于子String
的长度。此方法始终使用此charset的默认替换字符串替换格式错误的输入和不可映射字符序列。 当需要更多地控制解码过程时,应使用
CharsetDecoder
类。- 参数
-
bytes
- 要解码为字符的字节 -
offset
- 要解码的第一个字节的索引 -
length
- 要解码的字节数 -
charset
-该charset被用来解码bytes
- 异常
-
IndexOutOfBoundsException
- 如果offset
为负数,length
为负数,或offset
为大于bytes.length - length
- 从以下版本开始:
- 1.6
-
String
public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException
构造一个新的String
由指定用指定的字节的数组解码charset 。 新String
的长度是字符集的函数,因此可能不等于字节数组的长度。当给定字节在给定字符集中无效时,此构造函数的行为未指定。 当需要更多地控制解码过程时,应使用
CharsetDecoder
类。- 参数
-
bytes
- 要解码为字符的字节 -
charsetName
- 支持的charset的名称 - 异常
-
UnsupportedEncodingException
- 如果不支持指定的字符集 - 从以下版本开始:
- 1.1
-
String
public String(byte[] bytes, Charset charset)
构造一个新的String
由指定用指定的字节的数组解码charset 。 新String
的长度是字符集的函数,因此可能不等于字节数组的长度。此方法始终使用此charset的默认替换字符串替换格式错误的输入和不可映射字符序列。 当需要更多地控制解码过程时,应使用
CharsetDecoder
类。- 参数
-
bytes
- 要解码为字符的字节 -
charset
-该charset被用来解码bytes
- 从以下版本开始:
- 1.6
-
String
public String(byte[] bytes, int offset, int length)
通过使用平台的默认字符集解码指定的字节子阵列来构造新的String
。 新String
的长度是字符集的函数,因此可能不等于子String
的长度。未指定给定字节在默认字符集中无效时此构造函数的行为。 当需要更多地控制解码过程时,应使用
CharsetDecoder
类。- 参数
-
bytes
- 要解码为字符的字节 -
offset
- 要解码的第一个字节的索引 -
length
- 要解码的字节数 - 异常
-
IndexOutOfBoundsException
- 如果offset
为负数,则length
为负数,或offset
为大于bytes.length - length
- 从以下版本开始:
- 1.1
-
String
public String(byte[] bytes)
使用平台的默认字符集解码指定的字节数组,构造一个新的String
。 新String
的长度是字符集的函数,因此可能不等于字节数组的长度。未指定给定字节在默认字符集中无效时此构造函数的行为。 当需要更多地控制解码过程时,应使用
CharsetDecoder
类。- 参数
-
bytes
- 要解码为字符的字节 - 从以下版本开始:
- 1.1
-
String
public String(StringBuffer buffer)
分配一个新字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。 复制字符串缓冲区的内容; 后续修改字符串缓冲区不会影响新创建的字符串。- 参数
-
buffer
- AStringBuffer
-
String
public String(StringBuilder builder)
分配一个新字符串,其中包含当前包含在字符串构建器参数中的字符序列。 字符串生成器的内容被复制; 后续修改字符串生成器不会影响新创建的字符串。提供此构造函数是为了便于迁移到
StringBuilder
。 通过toString
方法从字符串生成器获取字符串可能运行得更快,通常是首选。- 参数
-
builder
- AStringBuilder
- 从以下版本开始:
- 1.5
-
-
方法详细信息
-
length
public int length()
返回此字符串的长度。 长度等于字符串中的Unicode code units的数量。- Specified by:
-
length
在界面CharSequence
- 结果
- 此对象表示的字符序列的长度。
-
isEmpty
public boolean isEmpty()
- 结果
-
true
如果length()
是0
,否则false
- 从以下版本开始:
- 1.6
-
charAt
public char charAt(int index)
返回指定索引处的char
值。 指数范围为0
至length() - 1
。 序列的第一个char
值位于索引0
,下一个位于索引1
,依此类推,就像数组索引一样。如果
char
由索引指定的值是surrogate ,则返回所述替代值。- Specified by:
-
charAt
在接口CharSequence
- 参数
-
index
-char
值的索引。 - 结果
-
此字符串的指定索引处的
char
值。 第一个char
值位于索引0
。 - 异常
-
IndexOutOfBoundsException
- 如果index
参数为负数或不小于此字符串的长度。
-
codePointAt
public int codePointAt(int index)
返回指定索引处的字符(Unicode代码点)。 索引引用char
值(Unicode代码单位),范围从0
到length()
- 1
。如果在给定索引处指定的
char
值处于高代理范围内,则以下索引小于此String
的长度,并且以下索引处的char
值处于低代理范围,然后是补充代码点对应于此代理项对返回。 否则,返回给定索引处的char
值。- 参数
-
index
-char
值的索引 - 结果
-
index
处角色的代码点值 - 异常
-
IndexOutOfBoundsException
- 如果index
参数为负数或不小于此字符串的长度。 - 从以下版本开始:
- 1.5
-
codePointBefore
public int codePointBefore(int index)
返回指定索引之前的字符(Unicode代码点)。 索引引用char
值(Unicode代码单位),范围从1
到length
。如果
char
在值(index - 1)
处于低代理项范围,(index - 2)
不为负,并且char
在值(index - 2)
处于高代理项范围,则返回代理对的补充代码点值。 如果char
值为index - 1
是未配对的低代理或高代理,则返回代理值。- 参数
-
index
- 应返回的代码点后面的索引 - 结果
- 给定索引之前的Unicode代码点值。
- 异常
-
IndexOutOfBoundsException
- 如果index
参数小于1或大于此字符串的长度。 - 从以下版本开始:
- 1.5
-
codePointCount
public int codePointCount(int beginIndex, int endIndex)
返回此String
的指定文本范围内的Unicode代码点数。 文本范围从指定的beginIndex
开始,并延伸至char
,索引号为endIndex - 1
。 因此,文本范围的长度(在char
s中)是endIndex-beginIndex
。 文本范围内的未配对代理计为每个代码点。- 参数
-
beginIndex
- 文本范围的第一个char
的索引。 -
endIndex
- 文本范围的最后char
之后的索引。 - 结果
- 指定文本范围内的Unicode代码点数
- 异常
-
IndexOutOfBoundsException
- 如果beginIndex
为负数,或者endIndex
大于此String
的长度,或者beginIndex
大于endIndex
。 - 从以下版本开始:
- 1.5
-
offsetByCodePoints
public int offsetByCodePoints(int index, int codePointOffset)
返回此String
中的索引,该索引从给定的index
偏移codePointOffset
代码点。 由index
和codePointOffset
给出的文本范围内的未配对代理计为每个代码点。- 参数
-
index
- 要偏移的索引 -
codePointOffset
- 代码点中的偏移量 - 结果
-
该指数在
String
- 异常
-
IndexOutOfBoundsException
- 如果index
为负或大于此String
的长度,或者如果codePointOffset
为正且从index
开始的子字符串少于codePointOffset
代码点,或者如果codePointOffset
为负且index
之前的子字符串少于绝对值codePointOffset
代码点。 - 从以下版本开始:
- 1.5
-
getChars
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将此字符串中的字符复制到目标字符数组中。要复制的第一个字符是索引
srcBegin
; 要复制的最后一个字符位于索引srcEnd-1
(因此要复制的字符总数为srcEnd-srcBegin
)。 字符被复制到dst
的子dst
从索引dstBegin
开始并以索引结束:dstBegin + (srcEnd-srcBegin) - 1
- 参数
-
srcBegin
- 要复制的字符串中第一个字符的索引。 -
srcEnd
- 要复制的字符串中的最后一个字符后面的索引。 -
dst
- 目标阵列。 -
dstBegin
- 目标阵列中的起始偏移量。 - 异常
-
IndexOutOfBoundsException
- 如果满足以下任何条件:-
srcBegin
是否定的。 -
srcBegin
大于srcEnd
-
srcEnd
大于此字符串的长度 -
dstBegin
是否定的 -
dstBegin+(srcEnd-srcBegin)
大于dst.length
-
-
getBytes
@Deprecated(since="1.1") public void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
Deprecated.This method does not properly convert characters into bytes. As of JDK 1.1, the preferred way to do this is via thegetBytes()
method, which uses the platform's default charset.将此字符串中的字符复制到目标字节数组中。 每个字节接收相应字符的8个低位。 每个字符的八个高位不会被复制,也不会以任何方式参与传输。要复制的第一个字符是索引
srcBegin
; 要复制的最后一个字符位于索引srcEnd-1
。 要复制的字符总数为srcEnd-srcBegin
。 转换为字节的字符被复制到dst
的子dst
从索引dstBegin
开始并以索引结束:dstBegin + (srcEnd-srcBegin) - 1
- 参数
-
srcBegin
- 要复制的字符串中第一个字符的索引 -
srcEnd
- 要复制的字符串中最后一个字符后的索引 -
dst
- 目标阵列 -
dstBegin
- 目标阵列中的起始偏移量 - 异常
-
IndexOutOfBoundsException
- 如果满足以下任何条件:-
srcBegin
是否定的 -
srcBegin
大于srcEnd
-
srcEnd
大于此String的长度 -
dstBegin
是否定的 -
dstBegin+(srcEnd-srcBegin)
大于dst.length
-
-
getBytes
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
使用指定的字符集将此String
编码为字节序列,将结果存储到新的字节数组中。未指定此字符串无法在给定字符集中进行编码时此方法的行为。 当需要对编码过程进行更多控制时,应使用
CharsetEncoder
类。- 参数
-
charsetName
- 支持的charset的名称 - 结果
- 结果字节数组
- 异常
-
UnsupportedEncodingException
- 如果不支持指定的charset - 从以下版本开始:
- 1.1
-
getBytes
public byte[] getBytes(Charset charset)
使用给定的charset将此String
编码为字节序列,将结果存储到新的字节数组中。此方法始终使用此charset的缺省替换字节数组替换格式错误的输入和不可映射的字符序列。 当需要对编码过程进行更多控制时,应使用
CharsetEncoder
类。- 参数
-
charset
-该Charset被用于编码String
- 结果
- 结果字节数组
- 从以下版本开始:
- 1.6
-
getBytes
public byte[] getBytes()
使用平台的默认字符集将此String
编码为字节序列,将结果存储到新的字节数组中。未指定此字符串无法在默认字符集中进行编码时此方法的行为。 当需要对编码过程进行更多控制时,应使用
CharsetEncoder
类。- 结果
- 结果字节数组
- 从以下版本开始:
- 1.1
-
equals
public boolean equals(Object anObject)
- 重写:
-
equals
在类Object
- 参数
-
anObject
- 对比对比String
的对象 - 结果
-
true
如果给定的对象表示String
相当于这个字符串,false
否则 - 另请参见:
-
compareTo(String)
,equalsIgnoreCase(String)
-
contentEquals
public boolean contentEquals(StringBuffer sb)
将此字符串与指定的StringBuffer
。 其结果是true
,如果,如果这仅String
表示字符作为指定的相同序列StringBuffer
。 此方法在StringBuffer
上同步。有关更精细的字符串比较,请参阅
Collator
。- 参数
-
sb
- 用StringBuffer
来比较这String
- 结果
-
true
如果此String
表示与指定的StringBuffer
相同的字符序列,否则为false
- 从以下版本开始:
- 1.4
-
contentEquals
public boolean contentEquals(CharSequence cs)
将此字符串与指定的CharSequence
。 当且仅当此String
表示与指定序列相同的char值序列时,结果为true
。 请注意,如果CharSequence
是StringBuffer
则该方法会对其进行同步。有关细粒度的字符串比较,请参阅
Collator
。- 参数
-
cs
- 比较这个String
的序列 - 结果
-
true
如果此String
表示与指定序列相同的char值序列,否则为false
- 从以下版本开始:
- 1.5
-
equalsIgnoreCase
public boolean equalsIgnoreCase(String anotherString)
将此String
与另一个String
比较,忽略了大小写。 如果两个字符串具有相同的长度并且两个字符串中的相应字符等于忽略大小写,则认为它们是相等的忽略大小写。如果至少满足下列条件之一,则两个字符
c1
和c2
被视为相同的忽略大小写:- 两个字符相同(由
==
运营商比较) - 在每个字符上调用
Character.toLowerCase(Character.toUpperCase(char))
会产生相同的结果
请注意,此方法不场所考虑,并会导致特定的语言环境不令人满意的结果。
Collator
类提供区域设置敏感的比较。- 参数
-
anotherString
- 用String
来比较这String
对比 - 结果
-
true
如果参数不是null
并且它代表等效的String
忽略大小写; 否则为false
- 另请参见:
-
equals(Object)
- 两个字符相同(由
-
compareTo
public int compareTo(String anotherString)
按字典顺序比较两个字符串。 比较基于字符串中每个字符的Unicode值。 此String
对象表示的字符序列按字典顺序与参数字符串表示的字符序列进行比较。 如果此String
对象按字典顺序排在参数字符串之前,则结果为负整数。 如果此String
对象按字典顺序跟随参数字符串,则结果为正整数。 如果字符串相等,结果为零;compareTo
在equals(Object)
方法返回0
完全返回true
。这是词典排序的定义。 如果两个字符串不同,则它们在某个索引处具有不同的字符,这些字符串是两个字符串的有效索引,或者它们的长度不同,或者两者都有。 如果它们在一个或多个索引位置具有不同的字符,则令k为最小的索引; 然后,通过使用
<
运算符确定其位置k处的字符具有较小值的字符串,按字典顺序排在另一个字符串之前。 在这种情况下,compareTo
返回两个字符串中位置k
处两个字符值的k
- 即值:this.charAt(k)-anotherString.charAt(k)
compareTo
返回字符串长度的差异 - 即值:this.length()-anotherString.length()
有关更精细的字符串比较,请参阅
Collator
。- Specified by:
-
compareTo
在Comparable<String>
- 参数
-
anotherString
- 待比较的String
。 - 结果
-
如果参数字符串等于此字符串,则值
0
; 如果此字符串按字典顺序小于字符串参数,则小于0
; 如果此字符串按字典顺序大于字符串参数,则值大于0
。
-
compareToIgnoreCase
public int compareToIgnoreCase(String str)
按字典顺序比较两个字符串,忽略大小写差异。 此方法返回一个整数,其符号是调用compareTo
的整数,其中字符串的规范化版本通过在每个字符上调用Character.toLowerCase(Character.toUpperCase(character))
消除了大小写差异。请注意,此方法不场所考虑,并会导致特定的语言环境不满意的排序。
Collator
类提供区域设置敏感的比较。- 参数
-
str
- 待比较的String
。 - 结果
- 一个负整数,零或正整数,因为指定的String大于,等于或小于此String,忽略了大小写。
- 从以下版本开始:
- 1.2
- 另请参见:
-
Collator
-
regionMatches
public boolean regionMatches(int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。将此
String
对象的子字符串与参数other的子字符串进行比较。 如果这些子串表示相同的字符序列,则结果为真。 要比较的此String
对象的子字符串从索引toffset
开始,长度为len
。 要比较的其他子串从索引ooffset
开始,长度为len
。 当且仅当至少满足下列条件之一时,结果为false
:-
toffset
是否定的。 -
ooffset
是否定的。 -
toffset+len
大于此String
对象的长度。 -
ooffset+len
大于另一个参数的长度。 - 有一些非负整数k小于
len
,使得:this.charAt(toffset +
k) != other.charAt(ooffset +
k)
请注意,此方法不场所考虑。
Collator
类提供区域设置敏感的比较。- 参数
-
toffset
- 此字符串toffset
区域的起始偏移量。 -
other
- 字符串参数。 -
ooffset
- 字符串参数ooffset
区域的起始偏移量。 -
len
- 要比较的字符数。 - 结果
-
true
如果此字符串的指定子区域与字符串参数的指定子区域完全匹配; 否则为false
。
-
-
regionMatches
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。将此
String
对象的子字符串与参数other
的子字符串进行other
。 如果这些子串表示相同的字符序列,则结果为true
,当且仅当ignoreCase
为真时,忽略大小写。 要比较的此String
对象的子字符串从索引toffset
开始,长度为len
。 要比较的子字符串other
从索引ooffset
开始,长度为len
。 结果是false
当且仅当至少满足下列条件之一时:-
toffset
是否定的。 -
ooffset
是否定的。 -
toffset+len
大于此String
对象的长度。 -
ooffset+len
大于另一个参数的长度。 -
ignoreCase
是false
并且有一些非负整数k小于len
这样:this.charAt(toffset+k) != other.charAt(ooffset+k)
-
ignoreCase
是true
并且有一些非负整数k小于len
这样:Character.toLowerCase(Character.toUpperCase(this.charAt(toffset+k))) != Character.toLowerCase(Character.toUpperCase(other.charAt(ooffset+k)))
请注意,此方法不场所考虑,并会导致特定的语言环境不理想结果时
ignoreCase
为true
。Collator
类提供区域设置敏感的比较。- 参数
-
ignoreCase
- 如果是true
,请在比较字符时忽略大小写。 -
toffset
- 此字符串toffset
区域的起始偏移量。 -
other
- 字符串参数。 -
ooffset
- 字符串参数ooffset
区域的起始偏移量。 -
len
- 要比较的字符数。 - 结果
-
true
如果此字符串的指定子区域与字符串参数的指定子区域匹配; 否则为false
。 匹配是精确匹配还是不区分大小写取决于ignoreCase
参数。
-
-
startsWith
public boolean startsWith(String prefix, int toffset)
测试从指定索引开始的此字符串的子字符串是否以指定的前缀开头。- 参数
-
prefix
- 前缀。 -
toffset
- 从哪里开始查看此字符串。 - 结果
-
true
如果参数表示的字符序列是从索引toffset
开始的此对象的子字符串的前缀; 否则为false
。 如果toffset
为负或大于此String
对象的长度,则结果为false
; 否则结果与表达式的结果相同this.substring(toffset).startsWith(prefix)
-
startsWith
public boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开头。- 参数
-
prefix
- 前缀。 - 结果
-
true
如果参数表示的字符序列是该字符串表示的字符序列的前缀; 否则为false
。 还需要注意的是true
如果参数为空字符串或等于该将被返回String
如由测定对象equals(Object)
方法。 - 从以下版本开始:
- 1.0
-
endsWith
public boolean endsWith(String suffix)
测试此字符串是否以指定的后缀结尾。- 参数
-
suffix
- 后缀。 - 结果
-
true
如果参数表示的字符序列是该对象表示的字符序列的后缀; 否则为false
。 注意,结果将是true
如果参数是空字符串或等于该String
如由所确定的对象equals(Object)
方法。
-
hashCode
public int hashCode()
返回此字符串的哈希码。String
对象的哈希码计算为s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
int
算术,其中s[i]
是字符串的第i个字符,n
是字符串的长度,^
表示取幂。 (空字符串的哈希值为零。)- 重写:
-
hashCode
在类Object
- 结果
- 此对象的哈希码值。
- 另请参见:
-
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
indexOf
public int indexOf(int ch)
返回指定字符第一次出现的字符串中的索引。 如果在此String
对象表示的字符序列中出现值为ch
的字符,则返回第一个此类事件的索引(以Unicode代码为单位)。 对于0到0xFFFF(包括)范围内的值ch
,这是最小值k ,使得:this.charAt(k) == ch
ch
其他值,它是最小值k ,使得:this.codePointAt(k) == ch
-1
。- 参数
-
ch
- 字符(Unicode代码点)。 - 结果
-
此对象表示的字符序列中第一次出现的字符的索引,如果未出现该字符,
-1
。
-
indexOf
public int indexOf(int ch, int fromIndex)
返回指定字符第一次出现的此字符串中的索引,从指定索引处开始搜索。如果在索引不小于
fromIndex
,此String
对象表示的字符序列中出现值为ch
的字符,则返回第一个此类出现的索引。 对于0到0xFFFF(包括)范围内的ch
值,这是最小值k ,使得:(this.charAt(k) == ch)
&&
(k >= fromIndex)ch
其他值,它是最小值k ,使得:(this.codePointAt(k) == ch)
&&
(k >= fromIndex)fromIndex
处或之后该字符串中没有出现这样的字符,则返回-1
。fromIndex
的价值没有限制。 如果它是负数,它具有与零相同的效果:可以搜索整个字符串。 如果它大于此字符串的长度,则它具有与等于此字符串长度相同的效果:返回-1
。所有索引都以
char
值(Unicode代码单位)指定。- 参数
-
ch
- 字符(Unicode代码点)。 -
fromIndex
- 从中开始搜索的索引。 - 结果
-
此对象表示的字符序列中第一次出现的字符的索引,大于或等于
fromIndex
,如果未出现该字符,-1
。
-
lastIndexOf
public int lastIndexOf(int ch)
返回指定字符最后一次出现的字符串中的索引。 对于范围为0到0xFFFF(包括)的ch
值,ch
的索引(以Unicode代码为单位)是最大值k,这样:this.charAt(k) == ch
ch
其他值,它是最大值k ,使得:this.codePointAt(k) == ch
-1
。 从最后一个字符开始向后搜索String
。- 参数
-
ch
- 字符(Unicode代码点)。 - 结果
-
此对象表示的字符序列中最后一次出现的字符的索引,如果未出现该字符,
-1
。
-
lastIndexOf
public int lastIndexOf(int ch, int fromIndex)
返回指定字符最后一次出现的字符串中的索引,从指定的索引开始向后搜索。 对于范围为0到0xFFFF(包括)的ch
值,返回的索引是最大值k ,使得:(this.charAt(k) == ch)
&&
(k <= fromIndex)ch
其他值,它是最大值k ,使得:(this.codePointAt(k) == ch)
&&
(k <= fromIndex)fromIndex
处或之前此字符串中没有出现此类字符,则返回-1
。所有索引都以
char
值(Unicode代码单位)指定。- 参数
-
ch
- 一个字符(Unicode代码点)。 -
fromIndex
- 从中开始搜索的索引。fromIndex
的价值没有限制。 如果它大于或等于该字符串的长度,则它具有相同的效果,如果它等于小于该字符串长度的一个:可以搜索整个字符串。 如果它是负数,它具有与-1相同的效果:返回-1。 - 结果
-
此对象表示的字符序列中最后一次出现的字符的索引,该字符序列小于或等于
fromIndex
,如果该字符在该点之前未出现,-1
。
-
indexOf
public int indexOf(String str)
返回指定子字符串第一次出现的字符串中的索引。返回的索引是最小值
k
,其中:this.startsWith(str, k)
k
存在,那么-1
返回。- 参数
-
str
- 要搜索的子字符串。 - 结果
-
指定子字符串第一次出现的索引,如果没有这种情况,
-1
。
-
indexOf
public int indexOf(String str, int fromIndex)
从指定的索引处开始,返回指定子字符串第一次出现的字符串中的索引。返回的索引是最小值
k
,其中:k >= Math.min(fromIndex, this.length()) && this.startsWith(str, k)
k
存在,那么-1
返回。- 参数
-
str
- 要搜索的子字符串。 -
fromIndex
- 从中开始搜索的索引。 - 结果
-
从指定索引开始的指定子字符串第一次出现的索引,如果没有这种情况
-1
。
-
lastIndexOf
public int lastIndexOf(String str)
返回指定子字符串最后一次出现的字符串中的索引。 最后一次出现空字符串“”被认为发生在索引值this.length()
。返回的索引是最大值
k
,其中:this.startsWith(str, k)
k
存在,那么-1
返回。- 参数
-
str
- 要搜索的子字符串。 - 结果
-
指定子字符串最后一次出现的索引,如果没有这种情况,
-1
。
-
lastIndexOf
public int lastIndexOf(String str, int fromIndex)
返回指定子字符串最后一次出现的字符串中的索引,从指定索引开始向后搜索。返回的索引是最大值
k
,其中:k <= Math.min(fromIndex, this.length()) && this.startsWith(str, k)
k
存在,那么-1
返回。- 参数
-
str
- 要搜索的子字符串。 -
fromIndex
- 从中开始搜索的索引。 - 结果
-
指定子字符串最后一次出现的索引,从指定索引向后搜索,如果没有这种情况,则
-1
。
-
substring
public String substring(int beginIndex)
返回一个字符串,该字符串是此字符串的子字符串。 子字符串以指定索引处的字符开头,并延伸到此字符串的末尾。例子:
"unhappy".substring(2) returns "happy" "Harbison".substring(3) returns "bison" "emptiness".substring(9) returns "" (an empty string)
- 参数
-
beginIndex
- 起始索引,包括。 - 结果
- 指定的子字符串。
- 异常
-
IndexOutOfBoundsException
- 如果beginIndex
为负数或大于此String
对象的长度。
-
substring
public String substring(int beginIndex, int endIndex)
返回一个字符串,该字符串是此字符串的子字符串。 子字符串从指定的beginIndex
开始,并扩展到索引endIndex - 1
处的字符。 因此子串的长度是endIndex-beginIndex
。例子:
"hamburger".substring(4, 8) returns "urge" "smiles".substring(1, 5) returns "mile"
- 参数
-
beginIndex
- 起始索引,包括在内。 -
endIndex
- 结束索引,不包括。 - 结果
- 指定的子字符串。
- 异常
-
IndexOutOfBoundsException
- 如果beginIndex
为负数,或者endIndex
大于此String
对象的长度,或者beginIndex
大于endIndex
。
-
subSequence
public CharSequence subSequence(int beginIndex, int endIndex)
返回作为此序列的子序列的字符序列。调用此方法的形式
str.subSequence(begin, end)
str.substring(begin, end)
- Specified by:
-
subSequence
在界面CharSequence
- API Note:
-
定义此方法,以便
String
类可以实现CharSequence
接口。 - 参数
-
beginIndex
- 包含起始索引。 -
endIndex
- 结束索引,不包括。 - 结果
- 指定的子序列。
- 异常
-
IndexOutOfBoundsException
- 如果beginIndex
或endIndex
为负数,如果endIndex
大于length()
,或者beginIndex
大于endIndex
- 从以下版本开始:
- 1.4
-
concat
public String concat(String str)
将指定的字符串连接到此字符串的末尾。如果参数字符串的长度为
0
,则返回此String
对象。 否则,返回一个String
对象,该对象表示一个字符序列,该字符序列是由此String
对象表示的字符序列和由参数字符串表示的字符序列的串联。例子:
"cares".concat("s") returns "caress" "to".concat("get").concat("her") returns "together"
- 参数
-
str
-该String
被连结到这个月底String
。 - 结果
- 一个字符串,表示此对象的字符串联后跟字符串参数的字符。
-
replace
public String replace(char oldChar, char newChar)
返回从替换所有出现的导致一个字符串oldChar
在此字符串newChar
。如果字符
oldChar
不通过此表示的字符序列发生String
对象,则该基准String
对象被返回。 否则,String
被返回对象,它表示一个字符序列与由本表示的字符序列String
除了的每次出现对象,oldChar
通过的发生替换newChar
。例子:
"mesquite in your cellar".replace('e', 'o') returns "mosquito in your collar" "the war of baronets".replace('r', 'y') returns "the way of bayonets" "sparring with a purple porpoise".replace('p', 't') returns "starring with a turtle tortoise" "JonL".replace('q', 'x') returns "JonL" (no change)
- 参数
-
oldChar
- 老字符。 -
newChar
- 新角色。 - 结果
-
通过将
oldChar
每个匹配项替换为oldChar
,newChar
字符串派生的字符串。
-
matches
public boolean matches(String regex)
判断此字符串是否与给定的regular expression匹配。调用str
.matches(
regex)
形式的此方法会产生与表达式完全相同的结果Pattern
.matches(regex, str)
- 参数
-
regex
- 要与此字符串匹配的正则表达式 - 结果
-
true
if且仅当此字符串与给定的正则表达式匹配时 - 异常
-
PatternSyntaxException
- 如果正则表达式的语法无效 - 从以下版本开始:
- 1.4
- 另请参见:
-
Pattern
-
contains
public boolean contains(CharSequence s)
当且仅当此字符串包含指定的char值序列时,才返回true。- 参数
-
s
- 要搜索的序列 - 结果
-
如果此字符串包含
s
,则返回true,否则s
false - 从以下版本开始:
- 1.5
-
replaceFirst
public String replaceFirst(String regex, String replacement)
将给定替换的给定regular expression匹配的此字符串的第一个子字符串替换。调用str
.replaceFirst(
形式的此方法regex,
repl)
产生与表达式完全相同的结果Pattern
.compile
(regex).matcher
(str).replaceFirst
(repl)请注意,替换字符串中的反斜杠(
\
)和美元符号($
)可能会导致结果与将其视为文字替换字符串时的结果不同; 见Matcher.replaceFirst(java.lang.String)
。 如果需要,请使用Matcher.quoteReplacement(java.lang.String)
来抑制这些字符的特殊含义。- 参数
-
regex
- 要与此字符串匹配的正则表达式 -
replacement
- 要替换第一个匹配项的字符串 - 结果
-
由此产生的
String
- 异常
-
PatternSyntaxException
- 如果正则表达式的语法无效 - 从以下版本开始:
- 1.4
- 另请参见:
-
Pattern
-
replaceAll
public String replaceAll(String regex, String replacement)
将给定替换的给定regular expression匹配的此字符串的每个子字符串替换。调用str
.replaceAll(
形式的此方法regex,
repl)
产生与表达式完全相同的结果Pattern
.compile
(regex).matcher
(str).replaceAll
(repl)请注意,替换字符串中的反斜杠(
\
)和美元符号($
)可能导致结果与将其视为文字替换字符串时的结果不同; 见Matcher.replaceAll
。 如果需要,请使用Matcher.quoteReplacement(java.lang.String)
来抑制这些字符的特殊含义。- 参数
-
regex
- 要与此字符串匹配的正则表达式 -
replacement
- 要替换每个匹配项的字符串 - 结果
-
由此产生的
String
- 异常
-
PatternSyntaxException
- 如果正则表达式的语法无效 - 从以下版本开始:
- 1.4
- 另请参见:
-
Pattern
-
replace
public String replace(CharSequence target, CharSequence replacement)
将此字符串中与文字目标序列匹配的每个子字符串替换为指定的文字替换序列。 替换从字符串的开头到结尾,例如,在字符串“aaa”中将“aa”替换为“b”将导致“ba”而不是“ab”。- 参数
-
target
- 要替换的char值序列 -
replacement
- char值的替换序列 - 结果
- 结果字符串
- 从以下版本开始:
- 1.5
-
split
public String[] split(String regex, int limit)
将此字符串拆分为给定regular expression的匹配项 。此方法返回的数组包含此字符串的每个子字符串,该子字符串由与给定表达式匹配的另一个子字符串终止,或者由字符串的结尾终止。 数组中的子串按它们在此字符串中出现的顺序排列。 如果表达式与输入的任何部分都不匹配,那么结果数组只有一个元素,即该字符串。
当在该字符串的开头存在正宽度匹配时,在结果数组的开头包含空的前导子字符串。 然而,开头的零宽度匹配从不会产生这样的空前导子串。
limit
参数控制应用模式的次数,因此会影响结果数组的长度。如果限制为正,则模式将应用最多限制 - 1次,数组的长度不会超过限制 ,并且数组的最后一个条目将包含超出最后一个匹配分隔符的所有输入。
如果限制为零,则模式将尽可能多地应用,数组可以具有任何长度,并且将丢弃尾随空字符串。
如果限制为负,则模式将尽可能多地应用,并且数组可以具有任何长度。
例如,字符串
"boo:and:foo"
使用以下参数生成以下结果:Regex Limit Result : 2 { "boo", "and:foo" }
5 { "boo", "and", "foo" }
-2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
-2 { "b", "", ":and:f", "", "" }
0 { "b", "", ":and:f" }
调用str形式的这个方法。
split(
regex,
n)
产生与表达式相同的结果Pattern
.compile
(regex).split
(str, n)- 参数
-
regex
- 分隔正则表达式 -
limit
- 结果阈值,如上所述 - 结果
- 通过在给定正则表达式的匹配项周围拆分此字符串计算的字符串数组
- 异常
-
PatternSyntaxException
- 如果正则表达式的语法无效 - 从以下版本开始:
- 1.4
- 另请参见:
-
Pattern
-
split
public String[] split(String regex)
将此字符串拆分为给定regular expression的匹配项 。此方法的作用就像通过使用给定表达式和limit参数为零调用双参数
split
方法一样。 因此,结尾的空字符串不包含在结果数组中。例如,字符串
"boo:and:foo"
使用以下表达式产生以下结果:Regex Result : { "boo", "and", "foo" }
o { "b", "", ":and:f" }
- 参数
-
regex
- 分隔正则表达式 - 结果
- 通过在给定正则表达式的匹配项周围拆分此字符串计算的字符串数组
- 异常
-
PatternSyntaxException
- 如果正则表达式的语法无效 - 从以下版本开始:
- 1.4
- 另请参见:
-
Pattern
-
join
public static String join(CharSequence delimiter, CharSequence... elements)
返回由CharSequence elements
的副本组成的新String,该副本与指定的delimiter
的副本连接在一起。For example,
请注意,如果元素为null,则添加String message = String.join("-", "Java", "is", "cool"); // message returned is: "Java-is-cool"
"null"
。- 参数
-
delimiter
- 用于分隔每个元素的分隔符 -
elements
- 要连接在一起的元素。 - 结果
-
一个新的
String
,它由所述的elements
由分离delimiter
- 异常
-
NullPointerException
- 如果delimiter
或elements
是null
- 从以下版本开始:
- 1.8
- 另请参见:
-
StringJoiner
-
join
public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
返回由String
的副本组成的新String
,其中CharSequence elements
指定的delimiter
的副本。For example,
请注意,如果单个元素是List<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
,则添加"null"
。- 参数
-
delimiter
-用于向每一个的分开的字符序列elements
在所得String
-
elements
-Iterable
将其elements
连接在一起。 - 结果
-
由
elements
参数组成的新String
- 异常
-
NullPointerException
- 如果delimiter
或elements
是null
- 从以下版本开始:
- 1.8
- 另请参见:
-
join(CharSequence,CharSequence...)
,StringJoiner
-
toLowerCase
public String toLowerCase(Locale locale)
使用给定Locale
的规则将此String
所有字符转换为Locale
。 案例映射基于Character
类指定的Unicode标准版本。 由于大小写映射并不总是1:1字符映射,因此生成的String
可能与原始String
长度不同。小写映射的示例如下表所示:
Lowercase mapping examples showing language code of locale, upper case, lower case, and description Language Code of Locale Upper Case Lower Case Description tr (Turkish) \u0130 \u0069 capital letter I with dot above -> small letter i tr (Turkish) \u0049 \u0131 capital letter I -> small letter dotless i (all) French Fries french fries lowercased all chars in String (all) ΙΧΘΥΣ ιχθυσ lowercased all chars in String- 参数
-
locale
- 使用此语言环境的大小写转换规则 - 结果
-
String
,转换为小写。 - 从以下版本开始:
- 1.1
- 另请参见:
-
toLowerCase()
,toUpperCase()
,toUpperCase(Locale)
-
toLowerCase
public String toLowerCase()
使用默认语言环境的规则将此String
所有字符转换为小写。 这相当于致电toLowerCase(Locale.getDefault())
。注意:此方法对语言环境敏感,如果用于要独立解释语言环境的字符串,则可能会产生意外结果。 示例是编程语言标识符,协议密钥和HTML标记。 例如,
"TITLE".toLowerCase()
在土耳其语言环境返回"t\u0131tle"
,其中“\ u0131”是拉丁小写字母无点我的性格。 要获取区域设置不敏感字符串的正确结果,请使用toLowerCase(Locale.ROOT)
。- 结果
-
String
,转换为小写。 - 另请参见:
-
toLowerCase(Locale)
-
toUpperCase
public String toUpperCase(Locale locale)
使用给定Locale
的规则将此String
所有字符转换为大写。 案例映射基于Character
类指定的Unicode标准版本。 由于大小写映射并不总是1:1的char映射,因此生成的String
可能与原始String
长度不同。区域设置敏感和1:M案例映射的示例如下表所示。
Examples of locale-sensitive and 1:M case mappings. Shows Language code of locale, lower case, upper case, and description. Language Code of Locale Lower Case Upper Case Description tr (Turkish) \u0069 \u0130 small letter i -> capital letter I with dot above tr (Turkish) \u0131 \u0049 small letter dotless i -> capital letter I (all) \u00df \u0053 \u0053 small letter sharp s -> two letters: SS (all) Fahrvergnügen FAHRVERGNÜGEN- 参数
-
locale
- 使用此区域设置的大小写转换规则 - 结果
-
String
,转换为大写。 - 从以下版本开始:
- 1.1
- 另请参见:
-
toUpperCase()
,toLowerCase()
,toLowerCase(Locale)
-
toUpperCase
public String toUpperCase()
使用默认语言环境的规则将此String
所有字符转换为大写。 此方法相当于toUpperCase(Locale.getDefault())
。注意:此方法对语言环境敏感,如果用于要独立解释语言环境的字符串,则可能会产生意外结果。 示例是编程语言标识符,协议密钥和HTML标记。 例如,
"title".toUpperCase()
在土耳其语言环境返回"T\u0130TLE"
,其中“\ u0130”是拉丁文大写字母我带点上述特征。 要获取区域设置不敏感字符串的正确结果,请使用toUpperCase(Locale.ROOT)
。- 结果
-
String
,转换为大写。 - 另请参见:
-
toUpperCase(Locale)
-
trim
public String trim()
返回一个字符串,其值为此字符串,删除了所有前导和尾随空格,其中space定义为其代码点小于或等于'U+0020'
(空格字符)的任何字符。如果此
String
对象表示一个空字符序列,或由该代表字符序列的第一个和最后一个字符String
对象都具有不是空间(如上所定义)码,然后该基准String
对象被返回。否则,如果此字符串中的所有字符都是空格(如上所述),则返回表示空字符串的
String
对象。否则,令k为字符串中第一个字符的索引,该字符串的代码不是空格(如上所定义),并且令m为字符串中最后一个字符的索引,该字符串的代码不是空格(如上所定义)。 返回一个
String
对象,表示该字符串的子字符串,该字符串以索引k处的字符开头,以索引m处的字符结束,即this.substring(k, m + 1)
的结果。此方法可用于从字符串的开头和结尾修剪空间(如上所述)。
- 结果
- 一个字符串,其值为此字符串,删除了所有前导和尾随空格,如果没有前导或尾随空格,则为此字符串。
-
strip
public String strip()
返回一个字符串,其值为此字符串,并删除了所有前导和尾随white space
。如果此
String
对象表示空字符串,或者此字符串中的所有代码点均为white space
,则返回空字符串。否则,返回此字符串的子字符串,该字符串以第一个不是
white space
的代码点开头,包括最后一个不是white space
的代码点。该方法可用于从字符串的开头和结尾剥离
white space
。- 结果
- 一个字符串,其值为此字符串,删除了所有前导和尾随空格
- 从以下版本开始:
- 11
- 另请参见:
-
Character.isWhitespace(int)
-
stripLeading
public String stripLeading()
返回一个字符串,其值为此字符串,并删除了所有前导white space
。如果此
String
对象表示空字符串,或者此字符串中的所有代码点均为white space
,则返回空字符串。否则,返回此字符串的子字符串,该字符串以第一个不是
white space
的代码点开头,并且包括该字符串的最后一个代码点。此方法可用于从字符串的开头修剪
white space
。- 结果
- 一个字符串,其值为此字符串,删除了所有前导空格
- 从以下版本开始:
- 11
- 另请参见:
-
Character.isWhitespace(int)
-
stripTrailing
public String stripTrailing()
返回一个字符串,其值为此字符串,并删除所有尾随white space
。如果此
String
对象表示空字符串,或者此字符串中的所有字符均为white space
,则返回空字符串。否则,返回此字符串的子字符串,以该字符串的第一个代码点开头,包括最后一个不是
white space
的代码点。此方法可用于从字符串末尾修剪
white space
。- 结果
- 一个字符串,其值为此字符串,并删除所有尾随空格
- 从以下版本开始:
- 11
- 另请参见:
-
Character.isWhitespace(int)
-
isBlank
public boolean isBlank()
- 结果
-
true
如果字符串为空或仅包含white space
代码点,否则为false
- 从以下版本开始:
- 11
- 另请参见:
-
Character.isWhitespace(int)
-
lines
public Stream<String> lines()
返回从此字符串中提取的行的流,由行终止符分隔。行结束符是以下中的一个:换行符
"\n"
(U + 000A),回车字符"\r"
(U + 000D),或回车换行符紧跟"\r\n"
(U + 000D U + 000A) 。一行是零个或多个字符的序列,后跟行终止符,或者是一个或多个字符的序列,后跟字符串的结尾。 一行不包括行终止符。
此方法返回的流包含此字符串中出现的行的行。
- API Note:
- 这个 行的定义意味着一个空字符串有零行,并且字符串末尾的行终止符后面没有空行。
- Implementation Note:
- 通过懒惰地提供元素并更快地搜索新的行终止符,此方法提供了比split(“\ R”)更好的性能。
- 结果
- 从此字符串中提取的行流
- 从以下版本开始:
- 11
-
toString
public String toString()
这个对象(已经是一个字符串!)本身就返回了。- Specified by:
-
toString
在界面CharSequence
- 重写:
-
toString
在类Object
- 结果
- 字符串本身。
-
chars
public IntStream chars()
返回int
的流,对此序列中的char
值进行零扩展。 映射到surrogate code point的任何字符都是未解释的。- Specified by:
-
chars
在界面CharSequence
- 结果
- 来自此序列的char值的IntStream
- 从以下版本开始:
- 9
-
codePoints
public IntStream codePoints()
返回此序列中的代码点值流。 序列中遇到的任何代理对被组合,就像Character.toCodePoint一样 ,结果传递给流。 任何其他代码单元(包括普通BMP字符,未配对代理和未定义代码单元)都将零扩展为int
值,然后传递给流。- Specified by:
-
codePoints
在界面CharSequence
- 结果
- Unicode代码的IntStream指向此序列
- 从以下版本开始:
- 9
-
toCharArray
public char[] toCharArray()
将此字符串转换为新的字符数组。- 结果
- 新分配的字符数组,其长度为此字符串的长度,其内容初始化为包含此字符串表示的字符序列。
-
format
public static String format(String format, Object... args)
使用指定的格式字符串和参数返回格式化字符串。始终使用的语言环境是由
Locale.getDefault(Locale.Category)
返回的语言环境,其中指定了FORMAT
类别。- 参数
-
format
- A format string -
args
- 格式字符串中格式说明符引用的参数。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受The Java™ Virtual Machine Specification定义的Java数组的最大维数限制。null
参数的行为取决于conversion 。 - 结果
- 格式化的字符串
- 异常
-
IllegalFormatException
- 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分。 - 从以下版本开始:
- 1.5
- 另请参见:
-
Formatter
-
format
public static String format(Locale l, String format, Object... args)
使用指定的语言环境,格式字符串和参数返回格式化的字符串。- 参数
-
l
- 格式化时应用的locale 。 如果l
是null
则不应用本地化。 -
format
- A format string -
args
- 格式字符串中格式说明符引用的参数。 如果参数多于格式说明符,则忽略额外参数。 参数的数量是可变的,可以为零。 参数的最大数量受The Java™ Virtual Machine Specification定义的Java数组的最大维数限制。null
参数上的行为取决于conversion 。 - 结果
- 格式化的字符串
- 异常
-
IllegalFormatException
- 如果格式字符串包含非法语法,格式说明符与给定参数不兼容,给定格式字符串的参数不足或其他非法条件。 有关所有可能的格式错误的说明,请参阅formatter类规范的Details部分 - 从以下版本开始:
- 1.5
- 另请参见:
-
Formatter
-
valueOf
public static String valueOf(Object obj)
返回Object
参数的字符串表示形式。- 参数
-
obj
-Object
。 - 结果
-
如果参数是
null
,则字符串等于"null"
; 否则,返回值obj.toString()
。 - 另请参见:
-
Object.toString()
-
valueOf
public static String valueOf(char[] data)
返回char
数组参数的字符串表示形式。 复制字符数组的内容; 后续修改字符数组不会影响返回的字符串。- 参数
-
data
- 字符数组。 - 结果
-
a
String
,包含字符数组的字符。
-
valueOf
public static String valueOf(char[] data, int offset, int count)
返回char
数组参数的特定子数组的字符串表示形式。offset
参数是子offset
的第一个字符的索引。count
参数指定子count
的长度。 复制子阵列的内容; 后续修改字符数组不会影响返回的字符串。- 参数
-
data
- 字符数组。 -
offset
- 子阵列的初始偏移量。 -
count
- 子阵列的长度。 - 结果
-
a
String
,包含字符数组的指定子数组的字符。 - 异常
-
IndexOutOfBoundsException
- 如果offset
为负数,或者count
为负数,或者offset+count
大于data.length
。
-
copyValueOf
public static String copyValueOf(char[] data, int offset, int count)
- 参数
-
data
- 字符数组。 -
offset
- 子阵列的初始偏移量。 -
count
- 子阵列的长度。 - 结果
-
a
String
,包含字符数组的指定子数组的字符。 - 异常
-
IndexOutOfBoundsException
- 如果offset
为负数,或者count
为负数,或者offset+count
大于data.length
。
-
copyValueOf
public static String copyValueOf(char[] data)
相当于valueOf(char[])
。- 参数
-
data
- 字符数组。 - 结果
-
包含字符数组字符的
String
。
-
valueOf
public static String valueOf(boolean b)
返回boolean
参数的字符串表示形式。- 参数
-
b
- aboolean
。 - 结果
-
如果参数为
true
,则返回等于"true"
的字符串; 否则,返回等于"false"
的字符串。
-
valueOf
public static String valueOf(char c)
返回char
参数的字符串表示形式。- 参数
-
c
- achar
。 - 结果
-
一个长度为
1
的字符串,1
包含参数c
作为其单个字符。
-
valueOf
public static String valueOf(int i)
返回int
参数的字符串表示形式。该表示形式正是一个参数的
Integer.toString
方法返回的表示形式。- 参数
-
i
-int
。 - 结果
-
int
参数的字符串表示形式。 - 另请参见:
-
Integer.toString(int, int)
-
valueOf
public static String valueOf(long l)
返回long
参数的字符串表示形式。该表示恰好是一个参数的
Long.toString
方法返回的表示。- 参数
-
l
- along
。 - 结果
-
long
参数的字符串表示形式。 - 另请参见:
-
Long.toString(long)
-
valueOf
public static String valueOf(float f)
返回float
参数的字符串表示形式。该表示恰好是一个参数的
Float.toString
方法返回的表示。- 参数
-
f
- afloat
。 - 结果
-
float
参数的字符串表示形式。 - 另请参见:
-
Float.toString(float)
-
valueOf
public static String valueOf(double d)
返回double
参数的字符串表示形式。该表示恰好是一个参数的
Double.toString
方法返回的表示。- 参数
-
d
- adouble
。 - 结果
-
double
参数的字符串表示形式。 - 另请参见:
-
Double.toString(double)
-
intern
public String intern()
返回字符串对象的规范表示。最初为空的字符串池由类
String
私有维护。调用实习方法时,如果池已包含等于String方法确定的
String
对象的字符串,则返回池中的字符串。 否则,将此String
对象添加到池中,并返回对此String
对象的引用。由此可见,对于任何两个字符串
s
和t
,s.intern() == t.intern()
是true
当且仅当s.equals(t)
为true
。所有文字字符串和字符串值常量表达式都是实体。 字符串文字在The Java™ Language Specification的 3.10.5节中定义。
- 结果
- 与此字符串具有相同内容的字符串,但保证来自唯一字符串池。
- See The Java™ Language Specification:
- 3.10.5字符串文字
-
repeat
public String repeat(int count)
返回一个字符串,其值为此字符串的串联重复count
次。如果此字符串为空或count为零,则返回空字符串。
- 参数
-
count
- 重复次数 - 结果
-
由此字符串组成的字符串重复
count
次,如果此字符串为空或count为零,则为空字符串 - 异常
-
IllegalArgumentException
- 如果count
为负数。 - 从以下版本开始:
- 11
-
-