方法摘要
char |
charAt(int index)返回指定索引处的 char 值。 |
int |
codePointAt(int index)返回指定索引处的字符(Unicode 代码点)。 |
int |
codePointBefore(int index)返回指定索引之前的字符(Unicode 代码点)。 |
int |
codePointCount(int beginIndex, int endIndex)返回此 String 的指定文本范围中的 Unicode 代码点数。 |
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)返回指定数组中表示该字符序列的 String。 |
static String |
copyValueOf(char[] data, int offset, int count)返回指定数组中表示该字符序列的 String。 |
boolean |
endsWith(String suffix)测试此字符串是否以指定的后缀结束。 |
boolean |
equals(Object anObject)将此字符串与指定的对象比较。 |
boolean |
equalsIgnoreCase(String anotherString)将此 String 与另一个 String 比较,不考虑大小写。 |
static String |
format(Locale l,
String format,
Object... args)使用指定的语言环境、格式字符串和参数返回一个格式化字符串。 |
static String |
format(String format,
Object... args)使用指定的格式字符串和参数返回一个格式化字符串。 |
byte[] |
getBytes()使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
byte[] |
getBytes(Charset charset)使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。 |
void |
getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)已过时。 该方法无法将字符正确转换为字节。从 JDK 1.1 起,完成该转换的首选方法是通过 getBytes() 方法,该方法使用平台的默认字符集。 |
byte[] |
getBytes(String charsetName)使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。 |
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 |
isEmpty()当且仅当 length() 为 0 时返回 true。 |
int |
lastIndexOf(int ch)返回指定字符在此字符串中最后一次出现处的索引。 |
int |
lastIndexOf(int ch, int fromIndex)返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 |
int |
lastIndexOf(String str)返回指定子字符串在此字符串中最右边出现处的索引。 |
int |
lastIndexOf(String str,
int fromIndex)返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 |
int |
length()返回此字符串的长度。 |
boolean |
matches(String regex)告知此字符串是否匹配给定的正则表达式。 |
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 |
replace(char oldChar, char newChar)返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。 |
String |
replace(CharSequence target,
CharSequence replacement)使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。 |
String |
replaceAll(String regex,
String replacement)使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 |
String |
replaceFirst(String regex,
String replacement)使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。 |
String[] |
split(String regex)根据给定正则表达式的匹配拆分此字符串。 |
String[] |
split(String regex,
int limit)根据匹配给定的正则表达式来拆分此字符串。 |
boolean |
startsWith(String prefix)测试此字符串是否以指定的前缀开始。 |
boolean |
startsWith(String prefix,
int toffset)测试此字符串从指定索引开始的子字符串是否以指定前缀开始。 |
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 中的所有字符都转换为小写。 |
String |
toString()返回此对象本身(它已经是一个字符串!)。 |
String |
toUpperCase()使用默认语言环境的规则将此 String 中的所有字符都转换为大写。 |
String |
toUpperCase(Locale locale)使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。 |
String |
trim()返回字符串的副本,忽略前导空白和尾部空白。 |
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 参数的字符串表示形式。 |
方法详细信息
length
public int length()
- 返回此字符串的长度。长度等于字符串中 Unicode 代码单元的数量。
-
- 指定者:
- 接口
CharSequence中的length
-
- 返回:
- 此对象表示的字符序列的长度。
isEmpty
public boolean isEmpty()
charAt
public char charAt(int index)
- 返回指定索引处的
char值。索引范围为从0到length() - 1。序列的第一个char值位于索引0处,第二个位于索引1处,依此类推,这类似于数组索引。如果索引指定的
char值是代理项,则返回代理项值。 -
- 指定者:
- 接口
CharSequence中的charAt
-
- 参数:
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。如果
(index - 1)处的char值属于低代理项范围,则(index - 2)为非负;如果(index - 2)处的char值属于高低理项范围,则返回该代理项对的增补代码点值。如果index - 1处的char值是未配对的低(高)代理项,则返回代理项值。 -
- 参数:
index- 应返回的代码点之后的索引- 返回:
- 给定索引前面的 Unicode 代码点。
- 抛出:
IndexOutOfBoundsException- 如果index参数小于 1 或大于此字符串的长度。- 从以下版本开始:
- 1.5
codePointCount
public int codePointCount(int beginIndex,
int endIndex)
- 返回此
String的指定文本范围中的 Unicode 代码点数。文本范围始于指定的beginIndex,一直到索引endIndex - 1处的char。因此,该文本范围的长度(用char表示)是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子数组的字符从索引dstBegin处开始,并结束于索引:dstbegin + (srcEnd-srcBegin) - 1
-
- 参数:
srcBegin- 字符串中要复制的第一个字符的索引。srcEnd- 字符串中要复制的最后一个字符之后的索引。dst- 目标数组。dstBegin- 目标数组中的起始偏移量。- 抛出:
IndexOutOfBoundsException- 如果下列任何一项为 true:srcBegin为负。srcBegin大于srcEndsrcEnd大于此字符串的长度dstBegin为负dstBegin+(srcEnd-srcBegin)大于dst.length
getBytes
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
- 使用指定的字符集将此
String编码为 byte 序列,并将结果存储到一个新的 byte 数组中。当此字符串不能使用给定的字符集编码时,此方法的行为没有指定。如果需要对编码过程进行更多控制,则应该使用
CharsetEncoder类。 -
- 参数:
charsetName- 受支持的 charset 名称- 返回:
- 所得 byte 数组
- 抛出:
UnsupportedEncodingException- 如果指定的字符集不受支持- 从以下版本开始:
- JDK1.1
getBytes
public byte[] getBytes(Charset charset)
- 使用给定的
charset 将此
String编码到 byte 序列,并将结果存储到新的 byte 数组。此方法总是使用此字符集的默认替代 byte 数组替代错误输入和不可映射字符序列。如果需要对编码过程进行更多控制,则应该使用
CharsetEncoder类。 -
- 参数:
charset- 用于编码String的 Charset- 返回:
- 所得 byte 数组
- 从以下版本开始:
- 1.6
getBytes
public byte[] getBytes()
- 使用平台的默认字符集将此
String编码为 byte 序列,并将结果存储到一个新的 byte 数组中。当此字符串不能使用默认的字符集编码时,此方法的行为没有指定。如果需要对编码过程进行更多控制,则应该使用
CharsetEncoder类。 -
- 返回:
- 所得 byte 数组
- 从以下版本开始:
- JDK1.1
equals
public boolean equals(Object anObject)
- 将此字符串与指定的对象比较。当且仅当该参数不为
null,并且是与此对象表示相同字符序列的String对象时,结果才为true。 -
- 参数:
anObject- 与此String进行比较的对象。- 返回:
- 如果给定对象表示的
String与此String相等,则返回true;否则返回false。 - 另请参见:
compareTo(String),equalsIgnoreCase(String)
contentEquals
public boolean contentEquals(StringBuffer sb)
- 将此字符串与指定的
StringBuffer比较。当且仅当此String与指定StringBuffer表示相同的字符序列时,结果才为true。 -
- 参数:
sb- 要与此String比较的StringBuffer。- 返回:
- 如果此
String与指定StringBuffer表示相同的字符序列,则返回true;否则返回false。 - 从以下版本开始:
- 1.4
contentEquals
public boolean contentEquals(CharSequence cs)
- 将此字符串与指定的
CharSequence比较。当且仅当此String与指定序列表示相同的 char 值序列时,结果才为true。 -
- 参数:
cs- 要与此String比较的序列- 返回:
- 如果此
String与指定序列表示相同的 char 值序列,则返回true;否则返回false。 - 从以下版本开始:
- 1.5
equalsIgnoreCase
public boolean equalsIgnoreCase(String anotherString)
- 将此
String与另一个String比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。在忽略大小写的情况下,如果下列至少一项为 true,则认为
c1和c2这两个字符相同。- 这两个字符相同(使用
==运算符进行比较)。 - 对每个字符应用方法
Character.toUpperCase(char)生成相同的结果。 - 对每个字符应用方法
Character.toLowerCase(char)生成相同的结果。
- 这两个字符相同(使用
-
- 参数:
anotherString- 与此String进行比较的String。- 返回:
- 如果参数不为
null,且这两个String相等(忽略大小写),则返回true;否则返回false。 - 另请参见:
equals(Object)
compareTo
public int compareTo(String anotherString)
- 按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此
String对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此String对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此String对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo只在方法equals(Object)返回true时才返回0。这是字典排序的定义。如果这两个字符串不同,那么它们要么在某个索引处的字符不同(该索引对二者均为有效索引),要么长度不同,或者同时具备这两种情况。如果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值;则在位置 k 上具有较小值的那个字符串(使用 < 运算符确定),其字典顺序在其他字符串之前。在这种情况下,
compareTo返回这两个字符串在位置k处两个char 值的差,即值:
如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,this.charAt(k)-anotherString.charAt(k)
compareTo返回这两个字符串长度的差,即值:this.length()-anotherString.length()
-
- 指定者:
- 接口
Comparable<String>中的compareTo
-
- 参数:
anotherString- 要比较的String。- 返回:
- 如果参数字符串等于此字符串,则返回值
0;如果此字符串按字典顺序小于字符串参数,则返回一个小于0的值;如果此字符串按字典顺序大于字符串参数,则返回一个大于0的值。
compareToIgnoreCase
public int compareToIgnoreCase(String str)
- 按字典顺序比较两个字符串,不考虑大小写。此方法返回一个整数,其符号与使用规范化的字符串调用
compareTo所得符号相同,规范化字符串的大小写差异已通过对每个字符调用Character.toLowerCase(Character.toUpperCase(character))消除。注意,此方法不 考虑语言环境,因此可能导致在某些语言环境中的排序效果不理想。java.text 包提供 Collators 完成与语言环境有关的排序。
-
- 参数:
str- 要比较的String。- 返回:
- 根据指定 String 大于、等于还是小于此 String(不考虑大小写),分别返回一个负整数、0 或一个正整数。
- 从以下版本开始:
- 1.2
- 另请参见:
Collator.compare(String, String)
regionMatches
public boolean regionMatches(int toffset,
String other,
int ooffset,
int len)
- 测试两个字符串区域是否相等。
将此 String 对象的一个子字符串与参数 other 的一个子字符串进行比较。如果这两个子字符串表示相同的字符序列,则结果为 true。要比较的此 String 对象的子字符串从索引 toffset 处开始,长度为 len。要比较的 other 的子字符串从索引 ooffset 处开始,长度为 len。当且仅当下列至少一项为 true 时,结果才为 false :
- toffset 为负。
- ooffset 为负。
- toffset+len 大于此 String 对象的长度。
- ooffset+len 大于另一个参数的长度。
- 存在某个小于 len 的非负整数 k,它满足:this.charAt(toffset+k) != other.charAt(ooffset+k)
-
- 参数:
toffset- 字符串中子区域的起始偏移量。other- 字符串参数。ooffset- 字符串参数中子区域的起始偏移量。len- 要比较的字符数。- 返回:
- 如果此字符串的指定子区域完全匹配字符串参数的指定子区域,则返回
true;否则返回false。
regionMatches
public boolean regionMatches(boolean ignoreCase,
int toffset,
String other,
int ooffset,
int len)
- 测试两个字符串区域是否相等。
将此 String 对象的子字符串与参数 other 的子字符串进行比较。如果这两个子字符串表示相同的字符序列,则结果为 true,当且仅当 ignoreCase 为 true 时忽略大小写。要比较的此 String 对象的子字符串从索引 toffset 处开始,长度为 len。要比较的 other 的子字符串从索引 ooffset 处开始,长度为 len。当且仅当下列至少一项为 true 时,结果才为 false:
- toffset 为负。
- ooffset 为负。
- toffset+len 大于此 String 对象的长度。
- ooffset+len 大于另一个参数的长度。
- ignoreCase 为 false,且存在某个小于 len 的非负整数 k,即:
this.charAt(toffset+k) != other.charAt(ooffset+k)
- ignoreCase 为 true,且存在某个小于 len 的非负整数 k,即:
以及:Character.toLowerCase(this.charAt(toffset+k)) != Character.toLowerCase(other.charAt(ooffset+k))Character.toUpperCase(this.charAt(toffset+k)) != Character.toUpperCase(other.charAt(ooffset+k))
-
- 参数:
ignoreCase- 如果为true,则比较字符时忽略大小写。toffset- 此字符串中子区域的起始偏移量。other- 字符串参数。toffset- 字符串参数中子区域的起始偏移量。len- 要比较的字符数。- 返回:
- 如果此字符串的指定子区域匹配字符串参数的指定子区域,则返回
true;否则返回false。是否完全匹配或考虑大小写取决于ignoreCase参数。
startsWith
public boolean startsWith(String prefix, int toffset)
- 测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
-
- 参数:
prefix- 前缀。toffset- 在此字符串中开始查找的位置。- 返回:
- 如果参数表示的字符序列是此对象从索引
toffset处开始的子字符串前缀,则返回true;否则返回false。如果toffset为负或大于此String对象的长度,则结果为false;否则结果与以下表达式的结果相同:this.substring(toffset).startsWith(prefix)
startsWith
public boolean startsWith(String prefix)
- 测试此字符串是否以指定的前缀开始。
-
- 参数:
prefix- 前缀。- 返回:
- 如果参数表示的字符序列是此字符串表示的字符序列的前缀,则返回
true;否则返回false。还要注意,如果参数是空字符串,或者等于此String对象(用equals(Object)方法确定),则返回true。 - 从以下版本开始:
- 1. 0
endsWith
public boolean endsWith(String suffix)
- 测试此字符串是否以指定的后缀结束。
-
- 参数:
suffix- 后缀。- 返回:
- 如果参数表示的字符序列是此对象表示的字符序列的后缀,则返回
true;否则返回false。注意,如果参数是空字符串,或者等于此String对象(用equals(Object)方法确定),则结果为true。
hashCode
public int hashCode()
- 返回此字符串的哈希码。
String对象的哈希码根据以下公式计算:
使用s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
int算法,这里s[i]是字符串的第 i 个字符,n是字符串的长度,^表示求幂。(空字符串的哈希值为 0。) -
- 返回:
- 此对象的哈希码值。
- 另请参见:
Object.equals(java.lang.Object),Hashtable
indexOf
public int indexOf(int ch)
- 返回指定字符在此字符串中第一次出现处的索引。如果在此
String对象表示的字符序列中出现值为ch的字符,则返回第一次出现该字符的索引(以 Unicode 代码单元表示)。对于 0 到 0xFFFF(包括 0 和 0xFFFF)范围内的ch的值,返回值是
为 true 的最小 k 值。对于其他this.charAt(k) == ch
ch值,返回值是
为 true 最小 k 值。无论哪种情况,如果此字符串中没有这样的字符,则返回this.codePointAt(k) == ch
-1。 -
- 参数:
ch- 一个字符(Unicode 代码点)。- 返回:
- 在此对象表示的字符序列中第一次出现该字符的索引;如果未出现该字符,则返回
-1。
indexOf
public int indexOf(int ch,
int fromIndex)
- 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
在此
String对象表示的字符序列中,如果带有值ch的字符的索引不小于fromIndex,则返回第一次出现该值的索引。对于 0 到 0xFFFF(包括 0 和 0xFFFF)范围内的ch值,返回值是
为 true 的最小 k 值。对于其他(this.charAt(k) == ch) && (k >= fromIndex)
ch值,返回值是
为 true 的最小 k 值。无论哪种情况,如果此字符串中(this.codePointAt(k) == ch) && (k >= fromIndex)
fromIndex或之后的位置没有这样的字符出现,则返回-1。fromIndex的值没有限制。如果它为负,则与它为 0 的效果同样:将搜索整个字符串。如果它大于此字符串的长度,则与它等于此字符串长度的效果相同:返回-1。所有索引都在
char值中指定(Unicode 代码单元)。 -
- 参数:
ch- 一个字符(Unicode 代码点)。fromIndex- 开始搜索的索引。- 返回:
- 在此对象表示的字符序列中第一次出现的大于或等于
fromIndex的字符的索引;如果未出现该字符,则返回-1。
lastIndexOf
public int lastIndexOf(int ch)
- 返回指定字符在此字符串中最后一次出现处的索引。对于 0 到 0xFFFF(包括 0 和 0xFFFF)范围内的
ch的值,返回的索引(Unicode 代码单元)是
为 true 最大 k 值。对于其他this.charAt(k) == ch
ch值,返回值是
为 true 的最大 k 值。无论哪种情况,如果此字符串中没有这样的字符出现,则返回this.codePointAt(k) == ch
-1。从最后一个字符开始反向搜索此String。 -
- 参数:
ch- 一个字符(Unicode 代码点)。- 返回:
- 在此对象表示的字符序列中最后一次出现该字符的索引;如果未出现该字符,则返回
-1。
lastIndexOf
public int lastIndexOf(int ch,
int fromIndex)
- 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。对于 0 到 0xFFFF(包括 0 和 0xFFFF)范围内的
ch值,返回的索引是
为 true 的最大 k 值。对于(this.charAt(k) == ch) && (k <= fromIndex)
ch的其他值,返回值是
为 true 的最大 k 值。无论哪种情况,如果此字符串中(this.codePointAt(k) == ch) && (k <= fromIndex)
fromIndex或之前的位置没有这样的字符出现,则返回-1。所有的索引都以
char值指定(Unicode 代码单元)。 -
- 参数:
ch- 一个字符(Unicode 代码点)。fromIndex- 开始搜索的索引。fromIndex的值没有限制。如果它大于等于此字符串的长度,则与它小于此字符串长度减 1 的效果相同:将搜索整个字符串。如果它为负,则与它为 -1 的效果相同:返回 -1。- 返回:
- 在此对象表示的字符序列(小于等于
fromIndex)中最后一次出现该字符的索引;如果在该点之前未出现该字符,则返回-1。
indexOf
public int indexOf(String str)
- 返回指定子字符串在此字符串中第一次出现处的索引。返回的整数是
为this.startsWith(str, k)
true的最小 k 值。 -
- 参数:
str- 任意字符串。- 返回:
- 如果字符串参数作为一个子字符串在此对象中出现,则返回第一个这种子字符串的第一个字符的索引;如果它不作为一个子字符串出现,则返回
-1。
indexOf
public int indexOf(String str, int fromIndex)
- 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。返回的整数是满足下式的最小 k 值:
如果不存在这样的 k 值,则返回 -1。k >= Math.min(fromIndex, this.length()) && this.startsWith(str, k)
-
- 参数:
str- 要搜索的子字符串。fromIndex- 开始搜索的索引位置。- 返回:
- 指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
lastIndexOf
public int lastIndexOf(String str)
- 返回指定子字符串在此字符串中最右边出现处的索引。将最右边的空字符串 "" 视为出现在索引值
this.length()处。返回的索引是
为 true 的最大 k 值。this.startsWith(str, k)
-
- 参数:
str- 要搜索的子字符串。- 返回:
- 如果字符串参数作为一个子字符串在此对象中出现一次或多次,则返回最后一个这种子字符串的第一个字符。如果它不作为一个子字符串出现,则返回
-1。
lastIndexOf
public int lastIndexOf(String str, int fromIndex)
- 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。返回的整数是满足下式的最大 k 值:
如果不存在这样的 k 值,则返回 -1。k <= Math.min(fromIndex,this.length()) && this.startsWith(str, k)
-
- 参数:
str- 要搜索的子字符串。fromIndex- 开始搜索的索引位置。- 返回:
- 指定子字符串在此字符串中最后一次出现处的索引。
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)
定义此方法使 String 类能够实现str.substring(begin, end)
CharSequence接口。 -
- 指定者:
- 接口
CharSequence中的subSequence
-
- 参数:
beginIndex- 起始索引(包括)。endIndex- 结束索引(不包括)。- 返回:
- 指定子序列。
- 抛出:
IndexOutOfBoundsException- 如果 beginIndex 或 endIndex 为负,如果 endIndex 大于 length() 或 beginIndex 大于 startIndex- 从以下版本开始:
- 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)
- 返回一个新的字符串,它是通过用
newChar替换此字符串中出现的所有oldChar得到的。如果
oldChar在此String对象表示的字符序列中没有出现,则返回对此String对象的引用。否则,创建一个新的String对象,它所表示的字符序列除了所有的oldChar都被替换为newChar之外,与此String对象表示的字符序列相同。示例:
"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替代为newChar。
matches
public boolean matches(String regex)
- 告知此字符串是否匹配给定的正则表达式。
调用此方法的 str.matches(regex) 形式与以下表达式产生的结果完全相同:
Pattern.matches(regex, str) -
- 参数:
regex- 用来匹配此字符串的正则表达式- 返回:
- 当且仅当此字符串匹配给定的正则表达式时,返回 true
- 抛出:
PatternSyntaxException- 如果正则表达式的语法无效- 从以下版本开始:
- 1.4
- 另请参见:
Pattern
contains
public boolean contains(CharSequence s)
- 当且仅当此字符串包含指定的 char 值序列时,返回 true。
-
- 参数:
s- 要搜索的序列- 返回:
- 如果此字符串包含
s,则返回 true,否则返回 false - 抛出:
NullPointerException- 如果s为null- 从以下版本开始:
- 1.5
replaceFirst
public String replaceFirst(String regex, String replacement)
- 使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
调用此方法的 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)
- 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
调用此方法的 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)
- 使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。该替换从字符串的开头朝末尾执行,例如,用 "b" 替换字符串 "aaa" 中的 "aa" 将生成 "ba" 而不是 "ab"。
-
- 参数:
target- 要被替换的 char 值序列replacement- char 值的替换序列- 返回:
- 所得 String
- 抛出:
NullPointerException- 如果target或replacement为null。- 从以下版本开始:
- 1.5
split
public String[] split(String regex, int limit)
- 根据匹配给定的正则表达式来拆分此字符串。
此方法返回的数组包含此字符串的子字符串,每个子字符串都由另一个匹配给定表达式的子字符串终止,或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中出现的顺序排列。如果表达式不匹配输入的任何部分,那么所得数组只具有一个元素,即此字符串。
limit 参数控制模式应用的次数,因此影响所得数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后一项将包含所有超出最后匹配的定界符的输入。如果 n 为非正,那么模式将被应用尽可能多的次数,而且数组可以是任何长度。如果 n 为 0,那么模式将被应用尽可能多的次数,数组可以是任何长度,并且结尾空字符串将被丢弃。
例如,字符串 "boo:and:foo" 使用这些参数可生成以下结果:
Regex Limit 结果 : 2 { "boo", "and:foo" } : 5 { "boo", "and", "foo" } : -2 { "boo", "and", "foo" } o 5 { "b", "", ":and:f", "", "" } o -2 { "b", "", ":and:f", "", "" } o 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)
- 根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数
split方法。因此,所得数组中不包括结尾空字符串。例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果:
Regex 结果 : { "boo", "and", "foo" } o { "b", "", ":and:f" } -
- 参数:
regex- 定界正则表达式- 返回:
- 字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的
- 抛出:
PatternSyntaxException- 如果正则表达式的语法无效- 从以下版本开始:
- 1.4
- 另请参见:
Pattern
toLowerCase
public String toLowerCase(Locale locale)
- 使用给定
Locale的规则将此String中的所有字符都转换为小写。大小写映射关系基于Character类指定的 Unicode 标准版。由于大小写映射关系并不总是 1:1 的字符映射关系,因此所得String的长度可能不同于原String。下表中给出了几个小写映射关系的示例:
语言环境的代码 大写字母 小写字母 描述 tr (Turkish) u0130 u0069 大写字母 I,上面有点 -> 小写字母 i tr (Turkish) u0049 u0131 大写字母 I -> 小写字母 i,无点 (all) French Fries french fries 将字符串中的所有字符都小写 (all) 









将字符串中的所有字符都小写 -
- 参数:
locale- 使用此语言环境的大小写转换规则- 返回:
- 要转换为小写的
String。 - 从以下版本开始:
- 1.1
- 另请参见:
toLowerCase(),toUpperCase(),toUpperCase(Locale)
toLowerCase
public String toLowerCase()
- 使用默认语言环境的规则将此
String中的所有字符都转换为小写。这等效于调用toLowerCase(Locale.getDefault())。注: 此方法与语言环境有关,如果用于应独立于语言环境解释的字符串,则可能生成不可预料的结果。示例有编程语言标识符、协议键、HTML 标记。例如,
"TITLE".toLowerCase()在 Turkish(土耳其语)语言环境中返回"t?tle",其中“?”是 LATIN SMALL LETTER DOTLESS I 字符。对于与语言环境有关的字符,要获得正确的结果,请使用toLowerCase(Locale.ENGLISH)。 -
- 返回:
- 要转换为小写的
String。 - 另请参见:
toLowerCase(Locale)
toUpperCase
public String toUpperCase(Locale locale)
- 使用给定
Locale的规则将此String中的所有字符都转换为大写。大小写映射关系基于Character类指定的 Unicode 标准版。由于大小写映射关系并不总是 1:1 的字符映射关系,因此所得String的长度可能不同于原String。下表中给出了几个与语言环境有关和 1:M 大小写映射关系的一些示例。
语言环境的代码 小写 大写 描述 tr (Turkish) u0069 u0130 小写字母 i -> 大写字母 I,上面有点 tr (Turkish) u0131 u0049 小写字母 i,无点 -> 大写字母 I (all) u00df u0053 u0053 小写字母 sharp s -> 两个字母:SS (all) Fahrvergnügen FAHRVERGNÜN -
- 参数:
locale- 使用此语言环境的大小写转换规则- 返回:
- 要转换为大写的
String。 - 从以下版本开始:
- 1.1
- 另请参见:
toUpperCase(),toLowerCase(),toLowerCase(Locale)
toUpperCase
public String toUpperCase()
- 使用默认语言环境的规则将此
String中的所有字符都转换为大写。此方法等效于toUpperCase(Locale.getDefault())。注: 此方法与语言环境有关,如果用于应独立于语言环境解释的字符串,则可能生成不可预料的结果。示例有编程语言标识符、协议键、HTML 标记。例如,
"title".toUpperCase()在 Turkish(土耳其语)语言环境中返回"T?TLE",其中“?”是 LATIN CAPITAL LETTER I WITH DOT ABOVE 字符。对于与语言环境有关的字符,要获得正确的结果,请使用toUpperCase(Locale.ENGLISH)。 -
- 返回:
- 要转换为大写的
String。 - 另请参见:
toUpperCase(Locale)
trim
public String trim()
- 返回字符串的副本,忽略前导空白和尾部空白。
如果此
String对象表示一个空字符序列,或者此String对象表示的字符序列的第一个和最后一个字符的代码都大于'u0020'(空格字符),则返回对此String对象的引用。否则,若字符串中没有代码大于
'u0020'的字符,则创建并返回一个表示空字符串的新String对象。否则,假定 k 为字符串中代码大于
'u0020'的第一个字符的索引,m 为字符串中代码大于'u0020'的最后一个字符的索引。创建一个新的String对象,它表示此字符串中从索引 k 处的字符开始,到索引 m 处的字符结束的子字符串,即this.substring(k, m+1)的结果。此方法可用于截去字符串开头和末尾的空白(如上所述)。
-
- 返回:
- 此字符串移除了前导和尾部空白的副本;如果没有前导和尾部空白,则返回此字符串。
toString
public String toString()
- 返回此对象本身(它已经是一个字符串!)。
-
- 指定者:
- 接口
CharSequence中的toString - 覆盖:
- 类
Object中的toString
-
- 返回:
- 字符串本身。
toCharArray
public char[] toCharArray()
- 将此字符串转换为一个新的字符数组。
-
- 返回:
- 一个新分配的字符数组,它的长度是此字符串的长度,它的内容被初始化为包含此字符串表示的字符序列。
format
public static String format(String format, Object... args)
- 使用指定的格式字符串和参数返回一个格式化字符串。
始终使用
Locale.getDefault()返回的语言环境。 -
- 参数:
format- 格式字符串args- 格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为 0。参数的最大数目受 Java Virtual Machine Specification 所定义的 Java 数组最大维度的限制。有关 null 参数的行为依赖于转换。- 返回:
- 一个格式化字符串
- 抛出:
IllegalFormatException- 如果格式字符串中包含非法语法、与给定的参数不兼容的格式说明符,格式字符串给定的参数不够,或者存在其他非法条件。有关所有可能的格式化错误的规范,请参阅 formatter 类规范的详细信息 一节。NullPointerException- 如果 format 为 null- 从以下版本开始:
- 1.5
- 另请参见:
Formatter
format
public static String format(Locale l, String format, Object... args)
- 使用指定的语言环境、格式字符串和参数返回一个格式化字符串。
-
- 参数:
l- 格式化过程中要应用的语言环境。如果 l 为 null,则不进行本地化。format- 格式字符串args- 格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为 0。参数的最大数目受 Java Virtual Machine Specification 所定义的 Java 数组最大维度的限制。有关 null 参数的行为依赖于转换。- 返回:
- 一个格式化字符串
- 抛出:
IllegalFormatException- 如果格式字符串中包含非法语法、与给定参数不兼容的格式说明符,格式字符串给定的参数不够,或存在其他非法条件。有关所有可能的格式化错误的规范,请参阅 formatter 类规范的详细信息 一节。NullPointerException- 如果 format 为 null- 从以下版本开始:
- 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-char数组。- 返回:
- 一个新分配的字符串,它表示包含在字符数组参数中的相同字符序列。
valueOf
public static String valueOf(char[] data, int offset, int count)
- 返回
char数组参数的特定子数组的字符串表示形式。offset参数是子数组的第一个字符的索引。count参数指定子数组的长度。字符数组的内容已被复制,后续修改不会影响新创建的字符串。 -
- 参数:
data- 字符数组。offset-String值的初始偏移量。count-String值的长度。- 返回:
- 一个字符串,它表示在字符数组参数的子数组中包含的字符序列。
- 抛出:
IndexOutOfBoundsException- 如果offset为负,count为负,或者offset+count大于data.length。
copyValueOf
public static String copyValueOf(char[] data, int offset, int count)
- 返回指定数组中表示该字符序列的 String。
-
- 参数:
data- 字符数组。offset- 子数组的初始偏移量。count- 子数组的长度。- 返回:
- 一个
String,它包含字符数组的指定子数组的字符。
copyValueOf
public static String copyValueOf(char[] data)
- 返回指定数组中表示该字符序列的 String。
-
- 参数:
data- 字符数组。- 返回:
- 一个
String,它包含字符数组的字符。
valueOf
public static String valueOf(boolean b)
- 返回
boolean参数的字符串表示形式。 -
- 参数:
b- 一个boolean。- 返回:
- 如果参数为
true,则返回一个等于"true"的字符串;否则,返回一个等于"false"的字符串。
valueOf
public static String valueOf(char c)
- 返回
char参数的字符串表示形式。 -
- 参数:
c- 一个char。- 返回:
- 一个长度为
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- 一个long。- 返回:
long参数的字符串表示形式。- 另请参见:
Long.toString(long)
valueOf
public static String valueOf(float f)
- 返回
float参数的字符串表示形式。该表示形式恰好是单参数的
Float.toString方法返回的结果。 -
- 参数:
f- 一个float。- 返回:
float参数的字符串表示形式。- 另请参见:
Float.toString(float)
valueOf
public static String valueOf(double d)
- 返回
double参数的字符串表示形式。该表示形式恰好是单参数的
Double.toString方法返回的结果。 -
- 参数:
d- 一个double。- 返回:
double参数的字符串表示形式。- 另请参见:
Double.toString(double)
intern
public String intern()
- 返回字符串对象的规范化表示形式。
一个初始为空的字符串池,它由类
String私有地维护。当调用 intern 方法时,如果池已经包含一个等于此
String对象的字符串(用equals(Object)方法确定),则返回池中的字符串。否则,将此String对象添加到池中,并返回此String对象的引用。它遵循以下规则:对于任意两个字符串
s和t,当且仅当s.equals(t)为true时,s.intern() == t.intern()才为true。所有字面值字符串和字符串赋值常量表达式都使用 intern 方法进行操作。字符串字面值在 Java Language Specification 的 §3.10.5 定义。
-
- 返回:
- 一个字符串,内容与此字符串相同,但一定取自具有唯一字符串的池。