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
类包括检查字符串序列中单个字符的方法,这些方法用于比较字符串、查找字符串、抽取子字符串、生成一个字符串拷贝和把所有字符都转换为大写或小写。
Java 语言提供对字符串连接操作符
( + )和其它字符串对象相互转换的特殊支持。
字符串连结是通过
StringBuffer
类和它的
append
方法实现的。
字符串转换是通过
toString
方法实现的,该方法由 Object
定义并且被 Java 中的所有类继承。 关于字符串连结和转换的其它信息
, 参见 Gosling 、Joy、和 Steele 的书
Java 语言规范 。
java.lang.Object | +----java.lang.String
String
。
String
。String
,它包含有从一8位整型数组构造得到的字符。
不推荐使用该方法。
String
String
,它包含有从一8位整型数组的子数组构造得到的字符。
不推荐使用该方法。
String
。
String
。
String
,它包含有字符数组参数中的字符序列。
String
,它包含有字符数组参数的一个子数组中的字符序列。
String
,它和字符串参数中有相同的字符序列。
String
,它包含有当前字符串缓冲区参数中的字符序列。
String
转换成字节,并把结果存到一新的字节数组中。
String
转换成字节,并把结果存到一新的字节数组中。
oldChar
替换成 newChar
。
String
转换为小写。
String
中的所有的字符转换为小写。
String
转换为大写。
String
中的所有的字符转换为大写。
boolean
参数的字符串表示。
char
* 参数的字符串表示。
char
数组参数的字符串表示。
char
数组参数的一个指定子数组的字符串表示。
double
参数的字符串表示。
float
参数的字符串表示。
int
参数的字符串表示。
long
参数的字符串表示。
Object
参数的字符串表示。
public String()
String
。
public String(String value)
String
,它包含有与字符串参数相同的字符序列。
String
.
public String(char value[])
String
,它包含有当前字符数组参数中的字符。
public String(char value[], int offset, int count)
String
,它包含字符数组参数的一个子数组的字符。 offset
参数是子数组中第一个字符的索引, count
参数指定了子数组的长度。
offset
和 count
参数超出了
value
数组的边界。
public String(byte ascii[], int hibyte, int offset, int count)
String
构造函数,它携带一个字符-编码方式名,或平台的缺省编码方式名作参数。
String
。
offset
参数是子数组中第一个字节处的索引, count
参数指定了子数组的长度。
子数组中的每个 byte
如上面方法描述的那样被转换为一个
char
。
public String(byte ascii[], int hibyte)
String
构造函数,它携带一个字符-编码方式名,或平台的缺省编码名作参数。
String
。
结果字符串中的每个字符 c 是由字节数组中的对应部分
b 构造的。如:
c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
public String(byte bytes[], int offset, int length, String enc) throws UnsupportedEncodingException
String
。
新 String
的长度是一个编码函数,因此可能不等于子数组的长度。
public String(byte bytes[], String enc) throws UnsupportedEncodingException
String
。
新 String
的长度是一个编码函数,因此可能不等于字节数组的长度。
public String(byte bytes[], int offset, int length)
String
。
新 String
的长度是一个编码函数,因此可能不等于子数组的长度。
public String(byte bytes[])
String
。
新 String
的长度是一个编码函数,因此可能不等于字节数组的长度。
public String(StringBuffer buffer)
String
,它包含有当前字符串缓冲区参数中的字符序列。
StringBuffer
.
public int length()
public char charAt(int index)
0
到 length() - 1
。
0
处。
public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin)
第一个要复制的字符在索引
srcBegin
处; 最后一个要复制的字符在索引
srcEnd-1
处(因此要复制的字符总数就是
srcEnd-srcBegin
) 。要复制到
dst
子数组的字符开始于索引 dstBegin
,结束于索引:
dstbegin + (srcEnd-srcBegin) - 1
public void getBytes(int srcBegin, int srcEnd, byte dst[], int dstBegin)
getBytes(String enc)
方法, 它使用一个字符-编码方式名作参数,或使用 getBytes()
方法,它使用平台的缺省编码方式。
第一个要复制的字符在索引
srcBegin
处; 最后一个要复制的字符在索引
srcEnd-1
处。要复制的字符总数是
srcEnd-srcBegin
。字符被转换成字节复制到 dst
子数组。它开始于索引
dstBegin
,结束于索引:
dstbegin + (srcEnd-srcBegin) - 1
public byte[] getBytes(String enc) throws UnsupportedEncodingException
String
转换为字节,结果存到一个新的字节数组中。
public byte[] getBytes()
String
转换成字节,并把结果存到一新的字节数组中。
public boolean equals(Object anObject)
null
,且是一个 String
对象,它表示的字符序列与此对象相同时结果为 true
。
String
作比较的对象。
String
相等则为 true
;否则为
false
。
public boolean equalsIgnoreCase(String anotherString)
null
,且是一个String
对象,它所表示的字符序列在大小写被忽略时与此对象相同,则结果为 true
。
如果至少满足以下条件之一,则两个字符在忽略大小写时被认为是相等的:
==
运算符比较)。
Character.toUppercase
,产生的结果相同。
Character.toLowercase
,产生的结果相同。
如果两个字符序列有相同的长度且对应的字符在忽略大小写时相同,,则两个字符序列被认为是相等的。
String
相比较的
String
。
String
相等,则为
true
;否则为 false
。
public int compareTo(String anotherString)
String
。
0
;若该字符串按词典顺序小于参数字符串则返回值小于 0
;若该字符串按词典顺序大于参数字符串则返回值大于 0
。
public boolean regionMatches(int toffset, String other, int ooffset, int len)
如果 toffset
或 ooffset
是负的,或如果
toffset
+length
大于该字符串的长度,
或 ooffset
+length
大于参数字符串的长度,那么该方法返回 false
。
true
,否则返回 false
。
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
如果 toffset
或 ooffset
是负的,或如果
toffset
+length
大于该字符串的长度,
或 ooffset
+length
大于参数字符串的长度,那么该方法返回 false
。
true
,则比较时忽略大小写。
true
,否则返回
false
。 匹配是否精确或是否大小写敏感依赖于
ignoreCase
参数。public boolean startsWith(String prefix, int toffset)
toffset
处的子字符串前缀则返回 true
,否则返回
false
。 public boolean startsWith(String prefix)
true
,否则返回 false
。
public boolean endsWith(String suffix)
true
,否则返回 false
。
public int hashCode()
public int indexOf(int ch)
-1
。
public int indexOf(int ch, int fromIndex)
fromIndex
字符的字符第一次出现处的索引,若字符没有出现则返回 -1
。
public int lastIndexOf(int ch)
-1
。
public int lastIndexOf(int ch, int fromIndex)
fromIndex
字符的字符最后一次出现处的下标,若字符在该位置之前没有出现过则返回
-1
。
public int indexOf(String str)
-1
。
public int indexOf(String str, int fromIndex)
fromIndex
的子串出现时,则返回第一个这样的子串首字符的索引。 若它没有作为从 fromIndex
开始或靠后位置开始的子串出现,则返回 -1
。
public int lastIndexOf(String str)
this.length()
位置。
-1
。
public int lastIndexOf(String str, int fromIndex)
fromIndex
。
fromIndex
的子串出现了一次或多次,则返回最后一个这样的子串第一个字符的索引。若它没有作为从 fromIndex
开始或靠前位置开始的子串出现,则返回 -1
。
public String substring(int beginIndex)
beginIndex
超出了范围。public String substring(int beginIndex, int endIndex)
beginIndex
,且扩展到索引为
endIndex - 1
的位置。
beginIndex
或 endIndex
超出了范围。
public String concat(String str)
如果参数长度是 0
,则返回该对象。
String
尾部的
String
。
public String replace(char oldChar, char newChar)
oldChar
替换成 newChar
。
如果字符 oldChar
没有出现在该对象表示的字符串序列中,则返回该字符串。
oldChar
被替换为 newChar
得到。
public String toLowerCase(Locale locale)
String
中所有的字符转换为小写。
public String toLowerCase()
String
为小写。
按照 Character
定义的
toLowerCase
方法,如果字符串中没有应该被转换的字符,则返回原始字符串。
否则,将分配一个新字符串,它的长度等于该字符串,并且源字符串中每个该进行小写转换的字符都被转换成等价的小写字符。
public String toUpperCase(Locale locale)
String
中的所有字符转换为大写。
public String toUpperCase()
String
为大写。
按照 Character
定义的
toUpperCase
方法,如果在字符串中没有应该进行大写转换的字符,则返回原始字符串。
否则,将分配一个新字符串,它的长度等于该字符串,并且源字符串中每个应该大写转换的字符都被转换成等价的大写字符。
public String trim()
所有小于或等于 '\u0020'
(空格字符)的字符都被认为是空格。
public String toString()
public char[] toCharArray()
public static String valueOf(Object obj)
Object
参数的字符串表示。
Object
.
null
,则返回一个等于
"null"
的字符串;否则返回 obj.toString()
。
public static String valueOf(char data[])
char
数组参数的字符串表示。
char
数组。
public static String valueOf(char data[], int offset, int count)
char
数组参数一个指定子数组的字符串。
offset
参数是子数组中第一个字符的索引。
count
参数指定了子数组的长度。
String
的起始偏移量。
String
字符序列的长度。
public static String copyValueOf(char data[], int offset, int count)
String
,包含了字符数组指定子数组中的字符。 public static String copyValueOf(char data[])
String
,包含了字符数组中的字符。
public static String valueOf(boolean b)
boolean
参数的字符串表示。
boolean
数。
true
,返回一个等于
"true"
的字符串;否则返回一个等于
"false"
的字符串。
public static String valueOf(char c)
char
* 参数的字符串表示。
char
型量。
1
的新字符串,它仅有的字符是参数 c
。public static String valueOf(int i)
int
参数的字符串表示。
返回内容和参数的
Integer.toString
方法返回的值相同。
int
量。
int
参数的字符串表示。
public static String valueOf(long l)
long
参数的字符串。
返回内容和参数的
Long.toString
方法返回的值相同。
long
型量。
long
参数的字符串表示。
public static String valueOf(float f)
float
参数的字符串表示。
返回的内容和参数的
Float.toString
方法返回的值相同。
float
型量。
float
参数的字符串表示。
public static String valueOf(double d)
double
参数的字符串表示。
返回的内容和参数的
Double.toString
方法返回的值相同。
double
型量。
double
参数的字符串表示。
public native String intern()
如果 s
和 t
是
s.equals(t)
类型的字符串,那就保证了
s.intern() == t.intern().