public final class String extends Object implements Serializable, Comparable<String>, CharSequence
String
类表示的字符串。java程序中的所有字符串,如
"abc"
,实现这个类的实例。
字符串是常量,它们的值不能被创建后改变。支持可变字符串字符串缓冲区。因为字符串对象是不可改变的,所以它们可以被共享。例如:
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
包括检查序列的单个字符的方法,用于比较字符串、搜索字符串,提取子字符串,并创建一个副本,一个与所有字符转化为大写或小写的字符串。例图是基于Unicode的标准版本Character
类指定。
java语言提供了字符串串联运算符特殊支持( + ),和其他对象转换为字符串。字符串连接是通过StringBuilder
实施(或StringBuffer
)类及其append
方法。字符串的转换是通过方法toString
实施,由Object
和继承的所有类的java。在字符串连接和转换,更多信息见戈斯林,喜乐,和斯梯尔,第三版。
除非另有说明,通过null争论这类构造函数或方法会导致一个NullPointerException
被。
一个String
代表UTF-16格式,补充字符的代理项对代表一个字符串(更多信息请看在Character
类的节Unicode Character Representations)。指标值是指char
代码单元,所以补充字符用在String
两位置。
的String
类提供了用于处理Unicode代码点的方法(即字符),除了那些处理Unicode代码单元(即char
值)。
Object.toString()
,
StringBuffer
,
StringBuilder
,
Charset
,
Serialized Form
Modifier and Type | Field and Description |
---|---|
static Comparator<String> |
CASE_INSENSITIVE_ORDER
一个比较器,订单
String 对象由
compareToIgnoreCase 。
|
Constructor and Description |
---|
String()
初始化新创建的
String 对象,它代表了一个空字符序列。
|
String(byte[] bytes)
通过使用平台的默认字符集解码指定的字节数组构造了一个新的
String 。
|
String(byte[] bytes, Charset charset)
通过使用指定的
charset解码指定的字节数组构造了一个新的
String 。
|
String(byte[] ascii, int hibyte)
过时的。
这种方法不正确地将字节转换为字符。作为 JDK 1.1,这样的首选方式是通过
String 构造函数带Charset ,字符集名称,或使用平台的默认字符集。
|
String(byte[] bytes, int offset, int length)
构建了一种新的
String 通过解码指定的字节数组使用平台的默认字符集。
|
String(byte[] bytes, int offset, int length, Charset charset)
构建了一种新的
String 通过解码指定的字节数组使用指定的
charset。
|
String(byte[] ascii, int hibyte, int offset, int count)
过时的。
这种方法不正确地将字节转换为字符。作为 JDK 1.1,这样的首选方式是通过
String 构造函数带Charset ,字符集名称,或使用平台的默认字符集。
|
String(byte[] bytes, int offset, int length, String charsetName)
构建了一种新的
String 通过解码指定的字节数组使用指定的字符集。
|
String(byte[] bytes, String charsetName)
通过使用指定的
charset解码指定的字节数组构造了一个新的
String 。
|
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)
分配一个新的字符串,该字符串包含当前包含在字符串生成器参数中的字符的序列。
|
Modifier and Type | Method and Description |
---|---|
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)
如果并且只有当此字符串包含指定的字符序列的字符串值,则返回真值。
|
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(Locale l, String format, Object... args)
使用指定的区域设置、格式字符串和参数返回格式化的字符串。
|
static String |
format(String format, Object... args)
使用指定的格式字符串和参数返回格式化的字符串。
|
byte[] |
getBytes()
这
String 编码成一个序列使用平台的默认字符集字节,结果存放到一个新的字节数组。
|
byte[] |
getBytes(Charset charset)
这
String 编码为一个字节序列使用给定的
charset,结果存放到一个新的字节数组。
|
void |
getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
过时的。
这种方法不正确地将字符转换为字节。作为 JDK 1.1,这样的首选方式是通过
getBytes() 方法,它使用平台的默认字符集。
|
byte[] |
getBytes(String charsetName)
这
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 |
isEmpty()
|
static String |
join(CharSequence delimiter, CharSequence... elements)
返回一个由
CharSequence elements 副本的新字符串连接在一起的一份指定的
delimiter 。
|
static String |
join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
返回一个由
CharSequence elements
String 加入新的副本,连同一份指定的
delimiter 。
|
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)
告诉是否这个字符串匹配给定
regular expression。
|
int |
offsetByCodePoints(int index, int codePointOffset)
返回指数在这
String 是从给定的
codePointOffset 代码点
index 偏移。
|
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)
每个子串替换该字符串的给予更换,给
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)
如果此字符串中的指定索引处开始的子字符串从指定的前缀。
|
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)
将所有的角色在这
String 以较低的情况下使用给定的
Locale 规则。
|
String |
toString()
这个对象(这已经是一个字符串!)是自己回来了。
|
String |
toUpperCase()
将所有的角色在这
String 上使用的默认区域设置规则。
|
String |
toUpperCase(Locale locale)
将所有的角色在这
String 大写使用给定的
Locale 规则。
|
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 参数的字符串表示形式。
|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
chars, codePoints
public static final Comparator<String> CASE_INSENSITIVE_ORDER
String
对象由
compareToIgnoreCase
。这是比较序列化。
注意,这个比较不带区域的考虑,将导致某些地区理想的排序。java.text包提供的整合允许现场敏感的排序。
Collator.compare(String, String)
public String()
String
对象,它代表了一个空字符序列。请注意,使用此构造函数是不必要的,因为字符串是不可变的。
public String(String original)
String
所以它代表相同的字符序列的说法;换句话说,新创建的字符串是一个副本的参数字符串。除非
original
显式复制是必要的,使用这个构造函数是不必要的因为字符串是不可变的。
original
-
String
public String(char[] value)
String
,它代表了目前包含在字符数组参数字符序列。字符数组的内容被复制;字符数组的随后的修改不会影响到新创建的字符串。
value
-字符串的初始值
public String(char[] value, int offset, int count)
String
。的说法是
offset
的子阵列的第一个字符的索引和
count
参数指定的数组的长度。的子阵列的内容复制的字符数组;随后的修改不影响新创建的字符串。
value
阵列是字源
offset
-初始偏移
count
-长度
IndexOutOfBoundsException
-如果
offset
和
count
参数指标的
value
以外的字符数组的界限
public String(int[] codePoints, int offset, int count)
String
包含字符子数组的
Unicode code point数组参数。的说法是
offset
的子阵第一个代码点的指数和
count
参数指定的数组的长度。这阵的内容转换为
char
s;
int
阵列的后续的修改不影响新创建的字符串。
codePoints
阵列是Unicode代码点源
offset
-初始偏移
count
-长度
IllegalArgumentException
-如果任何无效的Unicode代码点发现
codePoints
IndexOutOfBoundsException
-如果
offset
和
count
参数指标的
codePoints
以外的字符数组的界限
@Deprecated public String(byte[] ascii, int hibyte, int offset, int count)
String
构造函数带Charset
,字符集名称,或使用平台的默认字符集。
String
由一位整数数组的数组。
的说法是offset
的子阵的第一个字节的索引,和count
参数指定的数组的长度。
在数组的每个byte
转换为char
按上述方法。
ascii
-被转换为字符的字节
hibyte
-前8位每16位Unicode编码单元
offset
-初始偏移
count
-长度
IndexOutOfBoundsException
-如果
offset
或
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[])
@Deprecated public String(byte[] ascii, int hibyte)
String
构造函数带Charset
,字符集名称,或使用平台的默认字符集。
String
包含字符。每个字符的CIN结果字符串是由相应的组分B字节数组中的
这样:c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
ascii
-被转换为字符的字节
hibyte
-前8位每16位Unicode编码单元
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[])
public String(byte[] bytes, int offset, int length, String charsetName) throws UnsupportedEncodingException
String
通过解码指定的字节数组使用指定的字符集。新的
String
长度是一个字符集的功能,因此可能不相等的子阵列的长度。
这个构造函数的行为时,给定的字节不适用于给定的字符集是不确定的。的CharsetDecoder
班时应使用在解码过程中需要更多的控制。
bytes
-解码为字符的字节
offset
-第一个要解码的字节的索引
length
-字节数解码
charsetName
-支持的
charset名称
UnsupportedEncodingException
-如果指定的字符集不支持
IndexOutOfBoundsException
-如果
offset
和
length
参数指标的
bytes
以外的字符数组的界限
public String(byte[] bytes, int offset, int length, Charset charset)
String
通过解码指定的字节数组使用指定的
charset。新的
String
长度是一个字符集的功能,因此可能不相等的子阵列的长度。
这种方法总是会替换格式不正确的输入,无法映射的字符序列,该字符集的默认字符串替换。的CharsetDecoder
班时应使用在解码过程中需要更多的控制。
bytes
-解码为字符的字节
offset
-第一个要解码的字节的索引
length
-字节数解码
charset
-
charset用来解码
bytes
IndexOutOfBoundsException
-如果
offset
和
length
参数指标的
bytes
以外的字符数组的界限
public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException
String
。新的
String
长度是一个字符集的功能,因此可能不相等的字节数组的长度。
这个构造函数的行为时,给定的字节不适用于给定的字符集是不确定的。的CharsetDecoder
班时应使用在解码过程中需要更多的控制。
bytes
-解码为字符的字节
charsetName
-支持的
charset名称
UnsupportedEncodingException
-如果指定的字符集不支持
public String(byte[] bytes, Charset charset)
String
。新的
String
长度是一个字符集的功能,因此可能不相等的字节数组的长度。
这种方法总是会替换格式不正确的输入,无法映射的字符序列,该字符集的默认字符串替换。的CharsetDecoder
班时应使用在解码过程中需要更多的控制。
bytes
-解码为字符的字节
charset
-
charset用来解码
bytes
public String(byte[] bytes, int offset, int length)
String
通过解码指定的字节数组使用平台的默认字符集。新的
String
长度是一个字符集的功能,因此可能不相等的子阵列的长度。
这个构造函数的行为当给定字节无效的默认字符集是不确定的。的CharsetDecoder
班时应使用在解码过程中需要更多的控制。
bytes
-解码为字符的字节
offset
-第一个要解码的字节的索引
length
-字节数解码
IndexOutOfBoundsException
-如果
offset
和
length
参数指标的
bytes
以外的字符数组的界限
public String(byte[] bytes)
String
。新的
String
长度是一个字符集的功能,因此可能不相等的字节数组的长度。
这个构造函数的行为当给定字节无效的默认字符集是不确定的。的CharsetDecoder
班时应使用在解码过程中需要更多的控制。
bytes
-解码为字符的字节
public String(StringBuffer buffer)
buffer
-
StringBuffer
public String(StringBuilder builder)
此构造函数提供缓解迁移到StringBuilder
。通过toString
方法获得一个字符串生成字符串可能会跑得更快,一般是首选。
builder
-
StringBuilder
public int length()
length
接口
CharSequence
public boolean isEmpty()
true
如果
length()
是
0
,否则
false
public char charAt(int index)
char
价值。指数范围从
0
到
length() - 1
。第一序列的
char
值在指数
0
,在指数
1
下,等等,作为数组索引。
如果由索引指定的char
值是一个surrogate,代孕的返回值。
charAt
接口
CharSequence
index
的
char
价值指数。
char
价值。第一
char
值在指数
0
。
IndexOutOfBoundsException
-如果
index
参数为负或不低于此字符串的长度。
public int codePointAt(int index)
char
值(Unicode代码单元)和
0
到
length()
- 1
范围。
如果在给定的索引指定的char
值在高代理范围,下列指标低于本String
长度,并在下列指标的char
值是低代理范围,那么这个代理对相应的附加码点返回。否则,给定索引处的char
返回值。
index
-指数的
char
值
index
字符的码值
IndexOutOfBoundsException
-如果
index
参数为负或不低于此字符串的长度。
public int codePointBefore(int index)
char
值(Unicode代码单元)和
1
到
length
范围。
如果在(index - 1)
的char
值是低代理范围,(index - 2)
不是消极的,并在(index - 2)
的char
值在高代理范围,然后代理项对的辅助码位的值被返回。如果在index - 1
的char
值是一个未成对的低或高的代孕代孕,代孕的返回值。
index
跟踪代码点应该返回的索引
IndexOutOfBoundsException
-如果
index
参数小于1或大于此字符串的长度。
public int codePointCount(int beginIndex, int endIndex)
String
返回指定的文本范围的Unicode代码点。文本范围从指定的
beginIndex
延伸在指数
endIndex - 1
的
char
。这样的长度(在
char
s)的文本范围
endIndex-beginIndex
。不成对的替代文本范围内的算一个代码点。
beginIndex
-索引的文本范围的第一个
char
。
endIndex
-文本范围的最后
char
后指数。
IndexOutOfBoundsException
-如果
beginIndex
是负的,或
endIndex
大于这
String
长度,或
beginIndex
大于
endIndex
。
public int offsetByCodePoints(int index, int codePointOffset)
String
是从给定的
codePointOffset
代码点
index
偏移。不成对的代理人在文本范围的
index
和
codePointOffset
计数作为一个码点每。
index
将抵消指数
codePointOffset
-代码点偏移
String
指数
IndexOutOfBoundsException
-如果
index
阴性或大于这个
String
长度,或者如果
codePointOffset
正和子字符串从
index
少于
codePointOffset
代码点,或者如果
codePointOffset
是负的,在
index
少于
codePointOffset
代码点的绝对值的子字符串。
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
-如果任何以下是真实的:
srcBegin
是负的。srcBegin
大于srcEnd
srcEnd
大于此字符串的长度dstBegin
是负的dstBegin+(srcEnd-srcBegin)
大于dst.length
@Deprecated public void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
getBytes()
方法,它使用平台的默认字符集。
要复制的第一个字符是在指数srcBegin
;要复制的最后一个字符是在指数srcEnd-1
。要复制的字符数srcEnd-srcBegin
。字符,转换成字节,复制到dst
子数组的索引dstBegin
开始和结束索引:
dstbegin + (srcEnd-srcBegin) - 1
srcBegin
指标字符串中第一个字符复制
srcEnd
-在字符串中的最后一个字符复制后指数
dst
-目标数组
dstBegin
的起始偏移在目标阵列
IndexOutOfBoundsException
-如果任何以下是真实的:
srcBegin
是负的srcBegin
大于srcEnd
srcEnd
大于此字符串的长度dstBegin
是负的dstBegin+(srcEnd-srcBegin)
大于dst.length
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
String
编码成一个序列使用指定的字符的字节,并将结果存储到一个新的字节数组。
行为的这种方法在该字符串不能在给定的字符集编码不详。的CharsetEncoder
班时应采用在编码过程中需要更多的控制。
charsetName
-支持的
charset名称
UnsupportedEncodingException
-如果指定的字符集不支持
public byte[] getBytes(Charset charset)
String
编码为一个字节序列使用给定的
charset,结果存放到一个新的字节数组。
这种方法总是会替换格式不正确的输入,无法映射的字符序列,该字符集的默认置换的字节数组。的CharsetEncoder
班时应采用在编码过程中需要更多的控制。
charset
-
Charset用来编码
String
public byte[] getBytes()
String
编码成一个序列使用平台的默认字符集字节,结果存放到一个新的字节数组。
行为的这种方法在该字符串不能在默认字符集编码不详。的CharsetEncoder
班时应采用在编码过程中需要更多的控制。
public boolean equals(Object anObject)
true
如果只有参数不
null
是
String
表示相同的字符序列对象。
equals
上课
Object
anObject
的对象比较
String
反对
true
如果给定对象代表一个
String
相当于这根弦,
false
否则
compareTo(String)
,
equalsIgnoreCase(String)
public boolean contentEquals(StringBuffer sb)
StringBuffer
。结果是
true
当且仅当这
String
代表相同的字符序列指定的
StringBuffer
。这种方法可以使得在
StringBuffer
。
sb
-
StringBuffer
比较
String
反对
true
String
代表相同的字符序列指定的
StringBuffer
,
false
否则
public boolean contentEquals(CharSequence cs)
CharSequence
。其结果是
true
当且仅当这
String
代表字符值相同的序列指定的序列。注意,如果
CharSequence
是
StringBuffer
然后同步上。
cs
序列的比较
String
反对
true
String
代表字符值相同的序列指定的序列,
false
否则
public boolean equalsIgnoreCase(String anotherString)
String
到另一个
String
,忽略问题的考虑。两个字符串被认为是相等的忽略的情况下,如果他们是相同的长度和相应的字符在两个字符串是相等的忽略的情况下。
两个字c1
和c2
视为同一案件如果忽视下列中的至少一个是真的:
==
算子)Character.toUpperCase(char)
每个角色产生相同的结果Character.toLowerCase(char)
每个角色产生相同的结果anotherString
-
String
比较
String
反对
true
如果参数不是
null
,它代表了一个相当
String
忽视案例;
false
否则
equals(Object)
public int compareTo(String anotherString)
String
对象表示的字符序列是字典的比较参数字符串表示的字符序列。其结果是一个负整数,如果这
String
对象字典先于参数字符串。其结果是一个正整数,如果这
String
对象字典如下参数字符串。结果是零,如果字符串相等;
compareTo
返回
0
何时
equals(Object)
方法将返回
true
。
这是字典排序的定义。如果两个字符串是不同的,那么它们要么有不同的字符,在一些索引,是一个有效的索引字符串,或它们的长度是不同的,或两者都有。如果他们在一个或多个索引的位置有不同的特点,让K是最小的指数;然后串在位置K的性格具有较小的值,通过
<算子确定,先于其他字符串的字典序。在这种情况下,
compareTo返回在两个字符串,位置
k
的两个特征值的差异,价值:
算子确定,先于其他字符串的字典序。在这种情况下,
如果没有索引位置的不同,则较短的字符串的字典序是更长的字符串。在这种情况下,this.charAt(k)-anotherString.charAt(k)
compareTo
返回的字符串,值的长度差:
this.length()-anotherString.length()
compareTo
接口
Comparable<String>
anotherString
-
String
进行比较。
0
如果参数字符串等于这个字符串;值小于
0
如果这个字符串是字典序小于字符串参数;和一个值大于
0
如果这个字符串的字典序大于字符串参数。
public int compareToIgnoreCase(String str)
compareTo
归一化版本的字符串的情况下的差异已由每个字符调用
Character.toLowerCase(Character.toUpperCase(character))
淘汰。
请注意,此方法不需要现场的考虑,将导致某些地区理想的排序。java.text包提供的整合允许现场敏感的排序。
str
-
String
进行比较。
Collator.compare(String, String)
public boolean regionMatches(int toffset, String other, int ooffset, int len)
这String
子对象进行比较的子字符串变量。如果这些子代表相同的字符序列的结果是真的。这String
对象进行比较的字符串从指数toffset
和长度len
。其他可比指数ooffset
串开始,长度len
。其结果是false
当且仅当下列中的至少一个是真的:
toffset
是负的。ooffset
是负的。toffset+len
大于这String
对象的长度。ooffset+len
大于其他参数的长度。len
这样:this.charAt(toffset +
k) != other.charAt(ooffset +
k)
toffset
-此字符串中的子区域的起始偏移。
other
-字符串参数。
ooffset
-在字符串参数的分区起始偏移。
len
-字符数比较。
true
此字符串的指定区域的字符串完全匹配;
false
否则。
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
这String
子对象相比,子串的说法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(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
-字符串参数。
ooffset
-在字符串参数的分区起始偏移。
len
-字符数比较。
true
这个字符串匹配指定区域的字符串参数;
false
否则。是否匹配的准确或不区分大小写取决于
ignoreCase
论点。
public boolean startsWith(String prefix, int toffset)
prefix
-前缀。
toffset
-从哪里开始寻找这根弦。
true
如果参数表示的字符序列是一个前缀的这个对象的子从指数
toffset
;
false
否则。其结果是
false
如果
toffset
阴性或大于这个
String
对象的长度;否则结果作为表达式
这个子串(toffset)从(前缀)。结果相同
public boolean startsWith(String prefix)
prefix
-前缀。
true
如果参数表示的字符序列是前缀的字符串表示的字符序列;
false
否则。注意,
true
将如果参数为空字符串或等于这
String
对象由
equals(Object)
法确定返回。
public boolean endsWith(String suffix)
suffix
-后缀。
true
如果参数表示的字符序列是一个后缀,该对象表示的字符序列;
false
否则。注意,结果将
true
如果参数为空字符串或等于这
String
对象由
equals(Object)
法测定。
public int hashCode()
String
对象的哈希码的计算是
使用s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
int
算法,在
s[i]
是字符串的我这个角色,
n
是字符串的长度,和
^
表示幂。(空字符串的哈希值为零。)
hashCode
上课
Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)
public int indexOf(int ch)
ch
字符出现在这个
String
对象表示的字符序列,那么指数(Unicode代码单元)的首次发生返回。为
ch
范围中的值从0到0xFFFF(含),这是最小的K值如:
是真实的。为this.charAt(k) == ch
ch
其他值,它是最小的K值如:
是真实的。在任何情况下,如果没有这样的人物出现在这个字符串,然后返回this.codePointAt(k) == ch
-1
。
ch
-一个字符(Unicode代码点)。
-1
如果角色不发生。
public int indexOf(int ch, int fromIndex)
如果一个有价值ch
字符出现在比fromIndex
小没有索引的String
对象表示的字符序列,然后第一次发生的索引返回。为ch
范围中的值从0到0xFFFF(含),这是最小的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
如果角色不发生。
public int lastIndexOf(int ch)
ch
范围中的值从0到0xFFFF(含),指数(Unicode代码单元)又是最大的K值如:
是真实的。为this.charAt(k) == ch
ch
其他值,它是最大的K值如:
是真实的。在任何情况下,如果没有这样的人物出现在这个字符串,然后返回this.codePointAt(k) == ch
-1
。搜索的
String
向后从最后一个字符。
ch
-一个字符(Unicode代码点)。
-1
如果角色不发生。
public int lastIndexOf(int ch, int fromIndex)
ch
范围中的值从0到0xFFFF(含),索引返回的是最大的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
如果字符不会出现在那之前。
public int indexOf(String str)
返回的索引是最小的值K:
如果K没有存在的价值,然后this.startsWith(str, k)
-1
返回。
str
-子串搜索。
-1
如果没有发生。
public int indexOf(String str, int fromIndex)
返回的索引是最小的值K:
如果K没有存在的价值,然后k >= fromIndex&&
this.startsWith(str, k)
-1
返回。
str
-子串搜索。
fromIndex
-从开始搜索指数。
-1
如果没有发生。
public int lastIndexOf(String str)
this.length()
。
返回的索引是最大的值K:
如果K没有存在的价值,然后this.startsWith(str, k)
-1
返回。
str
-子串搜索。
-1
如果没有发生。
public int lastIndexOf(String str, int fromIndex)
返回的索引是最大的值K:
如果K没有存在的价值,然后k<=
fromIndex&&
this.startsWith(str, k)
-1
返回。
str
-子串搜索。
fromIndex
-开始搜索指数。
-1
如果没有发生。
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
对象的长度。
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
。
public CharSequence subSequence(int beginIndex, int endIndex)
此方法的调用
表现一样,调用str.subSequence(begin, end)
str.substring(begin, end)
subSequence
接口
CharSequence
String
类可以实现接口的
CharSequence
。
beginIndex
-开始指数、包容。
endIndex
结束的指标,独家。
IndexOutOfBoundsException
-如果
beginIndex
或
endIndex
是负的,如果
endIndex
大于
length()
,或者如果
beginIndex
大于
endIndex
public String concat(String str)
如果参数字符串的长度是0
,那么这String
对象返回。否则,一个String
对象返回代表一个字符序列,是由这个String
对象表示的字符序列拼接和字符序列的参数字符串表示。
实例:
"cares".concat("s") returns "caress" "to".concat("get").concat("her") returns "together"
str
-
String
,是连接到这个
String
结束。
public String replace(char oldChar, char newChar)
newChar
oldChar
结果字符串。
如果字符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
与
newChar
每发生从这个字符串对应的字符串。
public boolean matches(String regex)
这str.matches(
正则表达式)
产生完全相同的结果的表达形式的方法调用
Pattern
.matches(regex, str)
regex
-正则表达式的字符串相匹配
true
如果,如果,这个字符串匹配给定的正则表达式
PatternSyntaxException
如果正则表达式的语法是无效的
Pattern
public boolean contains(CharSequence s)
s
-序列搜索
s
真,否则为假
public String replaceFirst(String regex, String replacement)
这种形式的str.replaceFirst(
正则表达式,
取代)
方法调用产生完全相同的结果的表达
Pattern
.compile
(regex).matcher
(str).replaceFirst
(repl)
注意,反斜杠(\
)和美元符号($
)在替换字符串中可能导致的结果是不同的比如果它被视为文字的替换字符串;看到Matcher.replaceFirst(java.lang.String)
。使用Matcher.quoteReplacement(java.lang.String)
抑制这些字符的特殊意义,如果需要的话。
regex
-正则表达式的字符串相匹配
replacement
-可代替第一个匹配的字符串
String
PatternSyntaxException
如果正则表达式的语法是无效的
Pattern
public String replaceAll(String regex, String replacement)
这str.replaceAll(
正则表达式,
取代)
产生完全相同的结果的表达形式的方法调用
Pattern
.compile
(regex).matcher
(str).replaceAll
(repl)
注意,反斜杠(\
)和美元符号($
)在替换字符串中可能导致的结果是不同的比如果它被视为文字的替换字符串;看到Matcher.replaceAll
。使用Matcher.quoteReplacement(java.lang.String)
抑制这些字符的特殊意义,如果需要的话。
regex
-正则表达式的字符串相匹配
replacement
-被取代为每个匹配的字符串
String
PatternSyntaxException
如果正则表达式的语法是无效的
Pattern
public String replace(CharSequence target, CharSequence replacement)
target
-字符值被替换的序列
replacement
的char值置换序列
public String[] split(String regex, int limit)
此方法返回的数组包含此字符串的每个子字符串是由另一个字符串匹配给定的表达式或由字符串的末尾终止终止。数组中的子串在它们发生在这个字符串的顺序。如果表达式不匹配输入的任何一部分,那么结果的数组只有一个元素,即这个字符串。
当有初这个字符串然后空主导子被包含在结果数组的开始正面宽度匹配。一零宽度匹配而是一开始就不会产生这样的领导子空。
的limit
参数控制模式应用的次数,因此影响结果数组的长度。如果限制N大于零则模式将被应用最多N - 1次,数组的长度将不大于n,和数组的最后一项将包含所有输入超出最后匹配的分隔符。如果n是非正的,那么该模式将被应用尽可能多的时间和数组可以有任何长度。如果n是零,那么该模式将被应用尽可能多的时间,数组可以有任何长度,并尾随空字符串将被丢弃。
例如,字符串"boo:and:foo"
,得到以下结果与这些参数:
Regex Limit Result : 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" }
这结构split(
正则表达式,
n)
得到相同的结果作为表现形式的方法调用
Pattern
.compile
(regex).split
(str, n)
regex
-定义的正则表达式
limit
结果阈值,如上
PatternSyntaxException
如果正则表达式的语法是无效的
Pattern
public String[] split(String regex)
这种方法是通过调用两split
如果论证方法与给定的表达和零的极限参数。因此不包括在结果数组中的尾随空字符串。
例如,字符串"boo:and:foo"
,得到以下结果与这些表达式:
Regex Result : { "boo", "and", "foo" }
o { "b", "", ":and:f" }
regex
-定义的正则表达式
PatternSyntaxException
如果正则表达式的语法是无效的
Pattern
public static String join(CharSequence delimiter, CharSequence... elements)
CharSequence elements
副本的新字符串连接在一起的一份指定的
delimiter
。
For example,注意,如果一个元素是空的,然后String message = String.join("-", "Java", "is", "cool"); // message returned is: "Java-is-cool"
"null"
添加。
delimiter
-分隔符分隔的每个元素
elements
-一起加入的元素。
String
,组成的
elements
由
delimiter
分离
NullPointerException
-如果
delimiter
或
elements
是
null
StringJoiner
public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
CharSequence elements
String
加入新的副本,连同一份指定的
delimiter
。
For example,注意,如果一个元素是List<String> strings = new LinkedList<>(); strings.add("Java");strings.add("is"); strings.add("cool"); String message = String.join(" ", strings); //message returned is: "Java is cool" Set<String> strings = new LinkedHashSet<>(); strings.add("Java"); strings.add("is"); strings.add("very"); strings.add("cool"); String message = String.join("-", strings); //message returned is: "Java-is-very-cool"
null
,然后
"null"
添加。
delimiter
-一个字符序列,使用单独的每个的
elements
在产生的
String
elements
-
Iterable
将其
elements
一起。
String
是从
elements
参数组成
NullPointerException
-如果
delimiter
或
elements
是
null
join(CharSequence,CharSequence...)
,
StringJoiner
public String toLowerCase(Locale locale)
String
以较低的情况下使用给定的
Locale
规则。例图是基于Unicode的标准版本
Character
类指定。由于案件映射并不总是1:1的字符映射,得到的
String
可能比原来的
String
小写映射的例子在下表中:
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
,转换为小写。
toLowerCase()
,
toUpperCase()
,
toUpperCase(Locale)
public String toLowerCase()
String
以较低的情况下使用默认的区域设置规则。这相当于调用
toLowerCase(Locale.getDefault())
。
这种方法是注:现场敏感,并可用于打算解释现场独立字符串产生意外的结果。实例编程语言标识符,协议的密钥,和HTML标签。例如,"TITLE".toLowerCase()
在土耳其现场返回"t\u0131tle"
,那里的u0131是拉丁文小写字母带点我的性格。获得现场敏感字符串正确的结果,使用toLowerCase(Locale.ROOT)
。
String
,转换为小写。
toLowerCase(Locale)
public String toUpperCase(Locale locale)
String
大写使用给定的
Locale
规则。案例映射是基于Unicode的标准版本
Character
类指定。由于案件映射并不总是1:1的字符映射,得到的
String
可能比原来的
String
不同长度。
现场敏感和1:M的情况下映射的例子在下表中。
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
,转换为大写。
toUpperCase()
,
toLowerCase()
,
toLowerCase(Locale)
public String toUpperCase()
String
上使用的默认区域设置规则。这种方法相当于
这种方法是注:现场敏感,并可用于打算解释现场独立字符串产生意外的结果。实例编程语言标识符,协议的密钥,和HTML标签。例如,"title".toUpperCase()
在土耳其现场返回"T\u0130TLE"
,那里的u0130是拉丁文大写字母我点上面的字。获得现场敏感字符串正确的结果,使用toUpperCase(Locale.ROOT)
。
toUpperCase(Locale.getDefault())
。
String
,转换为大写。
toUpperCase(Locale)
public String trim()
如果这String
对象代表一个空字符或字符序列的序列,这String
对象都有码大于'\u0020'
为代表的第一个和最后一个字符(空格),然后参考这个String
对象返回。
否则,如果有一个代码大于字符串'\u0020'
没有字符,然后String
表示对象返回一个空字符串。
否则,让K是在字符串的编码大于'\u0020'
第一个字符的索引,让我可以在字符串的编码大于'\u0020'
的最后一个字符的索引。一个String
对象返回,表示此字符串,首先在指数m-that特征指数K和结束字符的子串,this.substring(k, m + 1)
的结果。
这种方法可以用来装饰的空白(如上文)从字符串的开头和结尾。
public String toString()
toString
接口
CharSequence
toString
上课
Object
public char[] toCharArray()
public static String format(String format, Object... args)
经常使用的区域是一个由Locale.getDefault()
。
format
-
format string
args
由格式字符串的格式说明符引用的论据。如果有比格式说明符的更多参数,多余的参数会被忽略。参数的数量是可变的,可能是零。参数的最大数量是由一个java数组的定义由
The Java™ Virtual Machine Specification最大尺寸的限制。在
null
争论的行为取决于
conversion。
IllegalFormatException
如果格式字符串包含一个非法的语法、格式说明符与给定的参数不兼容,论据不足给定的格式字符串,或者其他非法的条件。对于所有可能的格式错误的规范,看到格式化程序类规范的
Details节。
Formatter
public static String format(Locale l, String format, Object... args)
l
-
locale申请过程中的格式。如果
l
是
null
然后不采用定位。
format
-
format string
args
由格式字符串的格式说明符引用的论据。如果有比格式说明符的更多参数,多余的参数会被忽略。参数的数量是可变的,可能是零。参数的最大数量是由一个java数组的定义由
The Java™ Virtual Machine Specification最大尺寸的限制。在
null
争论的行为取决于
conversion。
IllegalFormatException
如果格式字符串包含一个非法的语法、格式说明符与给定的参数不兼容,论据不足给定的格式字符串,或者其他非法的条件。对于所有可能的格式错误的规范,看到格式化程序类规范的
Details节
Formatter
public static String valueOf(Object obj)
Object
参数的字符串表示形式。
obj
-
Object
。
null
,等于
"null"
;否则,返回的值的
obj.toString()
。
Object.toString()
public static String valueOf(char[] data)
char
数组参数的字符串表示形式。字符数组的内容被复制;字符数组的随后的修改不影响返回的字符串。
data
的字符数组。
String
包含的字符数组的特点。
public static String valueOf(char[] data, int offset, int count)
char
数组参数的字符串表示形式。
的说法是offset
的子阵列的第一个字符的索引。count
参数指定的数组的长度。的子阵列的内容复制的字符数组;随后的修改不影响返回的字符串。
data
的字符数组。
offset
-子阵初始偏移。
count
-子阵的长度。
String
包含指定的字符数组的字符数组。
IndexOutOfBoundsException
-如果
offset
是负的,或
count
是负的,或
offset+count
大于
data.length
。
public static String copyValueOf(char[] data, int offset, int count)
data
的字符数组。
offset
-子阵初始偏移。
count
-子阵的长度。
String
包含指定的字符数组的字符数组。
IndexOutOfBoundsException
-如果
offset
是负的,或
count
是负的,或
offset+count
大于
data.length
。
public static String copyValueOf(char[] data)
valueOf(char[])
。
data
的字符数组。
String
包含的字符数组的特点。
public static String valueOf(boolean b)
boolean
参数的字符串表示形式。
b
-
boolean
。
true
,等于
"true"
返回;否则,返回一个字符串相等
"false"
。
public static String valueOf(char c)
char
参数的字符串表示形式。
c
-
char
。
1
含为单个字符的参数
c
。
public static String valueOf(int i)
int
参数的字符串表示形式。
表示是完全由一个参数的Integer.toString
方法返回。
i
-
int
。
int
参数的字符串表示形式。
Integer.toString(int, int)
public static String valueOf(long l)
long
参数的字符串表示形式。
表示是完全由一个参数的Long.toString
方法返回。
l
-
long
。
long
参数的字符串表示形式。
Long.toString(long)
public static String valueOf(float f)
float
参数的字符串表示形式。
表示是完全由一个参数的Float.toString
方法返回。
f
-
float
。
float
参数的字符串表示形式。
Float.toString(float)
public static String valueOf(double d)
double
参数的字符串表示形式。
表示是完全由一个参数的Double.toString
方法返回。
d
-
double
。
double
参数的字符串表示形式。
Double.toString(double)
public String intern()
一个字符串池,最初是空的,是由类String
私下保持。
当实习生的方法被调用时,如果池中已经包含一个字符串相等这String
对象由equals(Object)
法确定,然后从池中的字符串返回。否则,这String
对象添加到池中,一提到这个String
对象返回。
因此,对于任意两个字符串s
和t
,s.intern() == t.intern()
是true
当且仅当s.equals(t)
是true
。
所有字符串和字符串值常量表达式是拘留。字符串字面值是在The Java™ Language Specification部分3.10.5定义。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.