JavaTM 2 Platform
Standard Ed. 5.0

java.lang
类 String

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 Standard 版本。

Java 语言提供对字符串串联符号("+")和其他对象到字符串的转换的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中所有类继承。有关字符串串联和转换的更多信息,请参阅 Gosling、Joy 和 Steele 合著的《The Java Language Specification》。

除非另行说明,否则将 null 参数传递给此类中的构造方法或方法都会抛出 NullPointerException

String 表示一个 UTF-16 格式的字符串,其中的增补字符代理项对 表示(有关详细信息,请参阅 Character 类中的 Unicode 字符表示形式)。索引值是指 char 代码单元,因此增补字符在 String 中占用两个位置。

String 类提供处理 Unicode 代码点(即字符)和 Unicode 代码单元(即 char 值)的方法。

从以下版本开始:
JDK1.0
另请参见:
Object.toString(), StringBuffer, StringBuilder, Charset, 序列化表格

字段摘要
static Comparator<String> CASE_INSENSITIVE_ORDER
          一个排序 String 对象的 Comparator,它的作用与 compareToIgnoreCase 相同。
 
构造方法摘要
String()
          初始化一个新创建的 String 对象,它表示一个空字符序列。
String(byte[] bytes)
          构造一个新的 String,方法是使用平台的默认字符集解码字节的指定数组。
String(byte[] ascii, int hibyte)
          已过时。 该方法无法将字节正确转换为字符。从 JDK 1.1 起,完成该转换的首选方法是通过 String 构造方法,该方法接受一个字符集名称或使用平台的默认字符集。
String(byte[] bytes, int offset, int length)
          构造一个新的 String,方法是使用指定的字符集解码字节的指定子数组。
String(byte[] ascii, int hibyte, int offset, int count)
          已过时。 该方法无法将字节正确转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是通过 String 构造方法,它接受一个字符集名称,或者使用平台默认的字符集。
String(byte[] bytes, int offset, int length, String charsetName)
          构造一个新的 String,方法是使用指定的字符集解码字节的指定子数组。
String(byte[] bytes, String charsetName)
          构造一个新的 String,方法是使用指定的字符集解码指定的字节数组。
String(char[] value)
          分配一个新的 String,它表示当前字符数组参数中包含的字符序列。
String(char[] value, int offset, int count)
          分配一个新的 String,它包含来自该字符数组参数的一个子数组的字符。
String(int[] codePoints, int offset, int count)
          分配一个新的 String,它包含该 Unicode 代码点数组参数的一个子数组的字符。
String(String original)
          初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的一个副本。
String(StringBuffer buffer)
          分配一个新的字符串,它包含当前包含在字符串缓冲区参数中的字符序列。
String(StringBuilder builder)
          分配一个新的字符串,它包含当前包含在字符串生成器参数中的字符序列。
 
方法摘要
 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)
          当且仅当此 String 表示与指定序列相同的 char 值时,才返回 true
 boolean contentEquals(StringBuffer sb)
          当且仅当此 String 表示与指定的 StringBuffer 相同的字符序列时,才返回 true
static String copyValueOf(char[] data)
          返回指定数组中表示该字符序列的字符串。
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 解码为字节序列,并将结果存储到一个新的字节数组中。
 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()
          返回字符串对象的规范化表示形式。
 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 参数的字符串表示形式。
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

字段详细信息

CASE_INSENSITIVE_ORDER

public static final Comparator<String> CASE_INSENSITIVE_ORDER
一个排序 String 对象的 Comparator,它的作用与 compareToIgnoreCase 相同。该比较器是可序列化的。

注意,Comparator 考虑到语言环境,因此可能导致在某些语言环境中排序效果不理想。java.text 包提供 Collators 来完成语言环境敏感的排序。

从以下版本开始:
1.2
另请参见:
Collator.compare(String, String)
构造方法详细信息

String

public String()
初始化一个新创建的 String 对象,它表示一个空字符序列。注意,由于 String 是不可变的,不必使用该构造方法。


String

public String(String original)
初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的一个副本。由于 String 是不可变的,不必使用该构造方法,除非需要 original 的显式副本。

参数:
original - 一个 String

String

public String(char[] value)
分配一个新的 String,它表示当前字符数组参数中包含的字符序列。该字符数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。

参数:
value - 此字符串的初始值。

String

public String(char[] value,
              int offset,
              int count)
分配一个新的 String,它包含来自该字符数组参数的一个子数组的字符。offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。该子数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。

参数:
value - 作为字符源的数组。
offset - 初始偏移量。
count - 长度。
抛出:
IndexOutOfBoundsException - 如果 offsetcount 参数索引字符超出 value 数组的范围。

String

public String(int[] codePoints,
              int offset,
              int count)
分配一个新的 String,它包含该 Unicode 代码点数组参数的一个子数组的字符。offset 参数是该子数组第一个代码点的索引,count 参数指定子数组的长度。将该子数组的内容转换为 char;后续对 int 数组的修改不会影响新创建的字符串。

参数:
codePoints - 作为 Unicode 代码点的源的数组。
offset - 初始偏移量。
count - 长度。
抛出:
IllegalArgumentException - 如果在 codePoints 中发现任何无效的 Unicode 代码点
IndexOutOfBoundsException - 如果 offsetcount 参数索引字符超出 codePoints 数组的范围。
从以下版本开始:
1.5

String

@Deprecated
public String(byte[] ascii,
                         int hibyte,
                         int offset,
                         int count)
已过时。 该方法无法将字节正确转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是通过 String 构造方法,它接受一个字符集名称,或者使用平台默认的字符集。

分配一个新的 String,它根据一个 8 位整数值数组的子数组构造。

offset 参数是该子数组的第一个字节的索引,count 参数指定子数组的长度。

子数组中的每个 byte 都按照上述方法转换为 char

参数:
ascii - 要转换为字符的字节。
hibyte - 每个 16 位 Unicode 字符的前 8 位。
offset - 初始偏移量。
count - 长度。
抛出:
IndexOutOfBoundsException - 如果 offsetcount 参数无效。
另请参见:
String(byte[], int), String(byte[], int, int, java.lang.String), String(byte[], int, int), String(byte[], java.lang.String), String(byte[])

String

@Deprecated
public String(byte[] ascii,
                         int hibyte)
已过时。 该方法无法将字节正确转换为字符。从 JDK 1.1 起,完成该转换的首选方法是通过 String 构造方法,该方法接受一个字符集名称或使用平台的默认字符集。

分配一个新的 String,它包含的字符根据一个 8 位整数值的数组构造。得到的字符串中的每个字符 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), String(byte[], java.lang.String), String(byte[])

String

public String(byte[] bytes,
              int offset,
              int length,
              String charsetName)
       throws UnsupportedEncodingException
构造一个新的 String,方法是使用指定的字符集解码字节的指定子数组。新的 String 的长度是一个字符集函数,因此不能等于子数组的长度。

当给定字节在给定字符集中无效的情况下,该构造方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetDecoder 类。

参数:
bytes - 要解码为字符的字节
offset - 要解码的首字节的索引
length - 要解码的字节数
charsetName - 受支持的 charset 的名称
抛出:
UnsupportedEncodingException - 如果指定的字符集不受支持
IndexOutOfBoundsException - 如果 offsetlength 参数索引字符超出 bytes 数组的范围
从以下版本开始:
JDK1.1

String

public String(byte[] bytes,
              String charsetName)
       throws UnsupportedEncodingException
构造一个新的 String,方法是使用指定的字符集解码指定的字节数组。新的 String 的长度是一个字符集函数,因此不能等于字节数组的长度。

当给定字节在给定字符集中无效的情况下,该构造方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetDecoder 类。

参数:
bytes - 要解码为字符的字节
charsetName - 受支持的 charset 的名称
抛出:
UnsupportedEncodingException - 如果指定字符集不受支持
从以下版本开始:
JDK1.1

String

public String(byte[] bytes,
              int offset,
              int length)
构造一个新的 String,方法是使用指定的字符集解码字节的指定子数组。新的 String 的长度是一个字符集函数,因此不能等于该子数组的长度。

当给定字节在给定字符集中无效的情况下,该构造方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetDecoder 类。

参数:
bytes - 要解码为字符的字节
offset - 要解码的首字节的索引
length - 要解码的字节数
抛出:
IndexOutOfBoundsException - 如果 offsetlength 参数索引字符超出 bytes 数组的范围
从以下版本开始:
JDK1.1

String

public String(byte[] bytes)
构造一个新的 String,方法是使用平台的默认字符集解码字节的指定数组。新的 String 的长度是一个字符集函数,因此不能等于字节数组的长度。

当给定字节在给定字符集中无效的情况下,该构造方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetDecoder 类。

参数:
bytes - 要解码为字符的字节
从以下版本开始:
JDK1.1

String

public String(StringBuffer buffer)
分配一个新的字符串,它包含当前包含在字符串缓冲区参数中的字符序列。此字符串缓冲区的内容已被复制,后续对它的修改不会影响新创建的字符串。

参数:
buffer - 一个 StringBuffer

String

public String(StringBuilder builder)
分配一个新的字符串,它包含当前包含在字符串生成器参数中的字符序列。此字符串生成器的内容已被复制,后续对此字符串生成器的修改不会影响新创建的字符串。

提供该构造方法以简化到 StringBuilder 的迁移。通过 toString 方法从字符串生成器中获得字符串可能是一种更快的方法,因此通常作为首选。

参数:
builder - 一个 StringBuilder
从以下版本开始:
1.5
方法详细信息

length

public int length()
返回此字符串的长度。长度等于字符串中 16 位 Unicode 字符数。

指定者:
接口 CharSequence 中的 length
返回:
此对象表示的字符序列的长度。

charAt

public char charAt(int index)
返回指定索引处的 char 值。索引范围为从 0length() - 1。序列的第一个 char 值在索引 0 处,第二个在索引 1 处,依此类推,这类似于数组索引。

如果索引指定的 char 值是代理项,则返回代理项值。

指定者:
接口 CharSequence 中的 charAt
参数:
index - char 值的索引。
返回:
此字符串指定索引处的 char 值。第一个 char 值在索引 0 处。
抛出:
IndexOutOfBoundsException - 如果 index 参数为负或小于此字符串的长度。

codePointAt

public int codePointAt(int index)
返回指定索引处的字符(Unicode 代码点)。该索引引用 char 值(Unicode 代码单元),其范围从 0length() - 1

如果给定索引指定的 char 值属于高代理项范围,则后续索引小于此 String 的长度。同样,如果后续索引处的 char 值属于低代理项范围,则返回该代理项对相应的增补代码点。否则,返回给定索引处的 char 值。

参数:
index - char 值的索引
返回:
index 处字符的代码点值
抛出:
IndexOutOfBoundsException - 如果 index 参数为负或小于此字符串的长度。
从以下版本开始:
1.5

codePointBefore

public int codePointBefore(int index)
返回指定索引之前的字符(Unicode 代码点)。该索引引用 char 值(Unicode 代码单元),其范围从 1length

如果 (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 个代码点的索引。文本范围内由 indexcodePointOffset 给定的未配对代理项各计为一个代码点。

参数:
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 大于 srcEnd
  • srcEnd 大于此字符串的长度
  • dstBegin 为负
  • dstBegin+(srcEnd-srcBegin) 大于 dst.length

getBytes

@Deprecated
public void getBytes(int srcBegin,
                                int srcEnd,
                                byte[] dst,
                                int dstBegin)
已过时。 该方法无法将字符正确转换为字节。从 JDK 1.1 起,完成该转换的首选方法是通过 getBytes() 构造方法,该方法使用平台的默认字符集。

将字符从此字符串复制到目标字节数组中。每个字节接收相应字符的 8 个低位。不复制每个字符的高位,它们也不参与任何方式的转换。

要复制的第一个字符在索引 srcBegin 处;要复制的最后一个字符在索引 srcEnd-1 处。要复制的字符总数为 srcEnd-srcBegin。将要转换为字节的字符复制到 dst 的子数组中,从索引 dstBegin 处开始,并结束于索引:

     dstbegin + (srcEnd-srcBegin) - 1
 

参数:
srcBegin - 字符串中要复制的第一个字符的索引。
srcEnd - 字符串中要复制的最后一个字符之后的索引。
dst - 目标数组。
dstBegin - 目标数组中的起始偏移量。
抛出:
IndexOutOfBoundsException - 如果下列任何一项为 true:
  • srcBegin 为负
  • srcBegin 大于 srcEnd
  • srcEnd 大于此 String 的长度
  • dstBegin 为负
  • dstBegin+(srcEnd-srcBegin) 大于 dst.length

getBytes

public byte[] getBytes(String charsetName)
                throws UnsupportedEncodingException
使用指定的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。

当此字符串不能在给定的字符集中解码时,该方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetEncoder 类。

参数:
charsetName - 受支持的 charset 名称
返回:
结果字节数组
抛出:
UnsupportedEncodingException - 如果指定的字符集不受支持
从以下版本开始:
JDK1.1

getBytes

public byte[] getBytes()
使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。

当此字符串不能在默认的字符集中解码时,该方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetEncoder 类。

返回:
结果字节数组
从以下版本开始:
JDK1.1

equals

public boolean equals(Object anObject)
比较此字符串与指定的对象。当且仅当该参数不为 null,并且是表示与此对象相同的字符序列的 String 对象时,结果才为 true

覆盖:
Object 中的 equals
参数:
anObject - 与此 String 进行比较的对象。
返回:
如果 String 相等,则返回 true;否则返回 false
另请参见:
compareTo(java.lang.String), equalsIgnoreCase(java.lang.String)

contentEquals

public boolean contentEquals(StringBuffer sb)
当且仅当此 String 表示与指定的 StringBuffer 相同的字符序列时,才返回 true

参数:
sb - 要比较的 StringBuffer
返回:
当且仅当此 String 表示与指定的 StringBuffer 相同的字符序列时,才返回 true;否则返回 false
抛出:
NullPointerException - 如果 sbnull
从以下版本开始:
1.4

contentEquals

public boolean contentEquals(CharSequence cs)
当且仅当此 String 表示与指定序列相同的 char 值时,才返回 true

参数:
cs - 要比较的序列。
返回:
当且仅当此 String 表示与指定序列相同的 char 值的序列时;才返回 true,否则返回 false
抛出:
NullPointerException - 如果 csnull
从以下版本开始:
1.5

equalsIgnoreCase

public boolean equalsIgnoreCase(String anotherString)
将此 String 与另一个 String 进行比较,不考虑大小写。如果两个字符串的长度相等,并且两个字符串中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的。

在忽略大小写的情况下,如果下列至少一项为 true,则认为 c1c2 这两个字符相同。

参数:
anotherString - 与此 String 进行比较的 String
返回:
如果参数不为 null,且这两个 String 在忽略大小写时相等,则返回 true;否则返回 false
另请参见:
equals(Object), Character.toLowerCase(char), Character.toUpperCase(char)

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 而定,不考虑大小写。
从以下版本开始:
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 - 字符串中子区域的起始偏移量。
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

参数:
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。还要注意,如果参数是空字符串,或者等于由 equals(Object) 方法确定的 String 对象,则返回 true
从以下版本开始:
1. 0

endsWith

public boolean endsWith(String suffix)
测试此字符串是否以指定的后缀结束。

参数:
suffix - 后缀。
返回:
如果该参数表示的字符序列是此对象表示的字符序列的后缀,则返回 true;否则返回 false。注意,如果该参数是空字符串或等于由 equals(Object) 方法确定的 String 对象,则结果为 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 中的 hashCode
返回:
此对象的哈希码值。
另请参见:
Object.equals(java.lang.Object), Hashtable

indexOf

public int indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。如果在此 String 对象表示的字符序列中出现值为 ch 的字符,则返回第一次出现该字符的索引(以 Unicode 代码单元表示)。对于位于 0 到 0xFFFF(包括 0 和 0xFFFF)范围内的 ch 的值,返回值是
 this.charAt(k) == ch
 
为 true 的最小值 k。对于 ch 的其他值,返回值是
 this.codePointAt(k) == ch
 
为 true 最小值 k。无论哪种情况,如果此字符串中没有这样的字符,则返回 -1

参数:
ch - 一个字符(Unicode 代码点)。
返回:
在该对象表示的字符序列中第一次出现该字符的索引,如果未出现该字符,则返回 -1

indexOf

public int indexOf(int ch,
                   int fromIndex)
从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引。

在此 String 对象表示的字符序列中,如果带有值 ch 的字符的索引不小于 fromIndex,则返回第一次出现该值的索引。对于位于 0 到 0xFFFF(包括 0 和 0xFFFF)范围内的 ch 值,返回值是

 (this.charAt(k) == ch) && (k >= fromIndex)
 
为 true 的最小值 k。对于 ch 的其他值,返回值是
 (this.codePointAt(k) == ch) && (k >= fromIndex)
 
为 true 的最小值 k。在任何情况下,如果此字符串中没有这样的字符在位置 fromIndex 处或其后出现,则返回 -1

fromIndex 的值没有限制。如果它为负,它和 0 具有同样的效果:将搜索整个字符串。如果它大于此字符串的长度,则它具有等于此字符串长度的相同效果:返回 -1

所有索引都在 char 值中指定(Unicode 代码单元)。

参数:
ch - 一个字符(Unicode 代码点)。
fromIndex - 开始搜索的索引。
返回:
在此对象表示的字符序列中第一次出现的大于或等于 fromIndex 的字符的索引,如果未出现该字符,则返回 -1

lastIndexOf

public int lastIndexOf(int ch)
返回最后一次出现的指定字符在此字符串中的索引。对于位于 0 到 0xFFFF(包括 0 和 0xFFFF)范围内的 ch 的值,返回的索引(Unicode 代码单元)是
 this.charAt(k) == ch
 
为 true 最大值 k。对于 ch 的其他值,即为
 this.codePointAt(k) == ch
 
为 true 的最大值 k。在任一种情况下,如果此字符串中没有这样的字符出现,则返回 -1。从最后一个字符开始后向搜索此 String

参数:
ch - 一个字符(Unicode 代码点)。
返回:
在此对象表示的字符序列中最后一次出现该字符的索引,如果未出现该字符,则返回 -1

lastIndexOf

public int lastIndexOf(int ch,
                       int fromIndex)
从指定的索引处开始进行后向搜索,返回最后一次出现的指定字符在此字符串中的索引。对于位于 0 到 0xFFFF(包括 0 和 0xFFFF)范围内的 ch 值,返回的索引是
 (this.charAt(k) == ch) && (k <= fromIndex)
 
为 true 的最大值 k。对于 ch 的其他值,即为
 (this.codePointAt(k) == ch) && (k <= fromIndex)
 
为 true 的最大值 k。在任一种情况下,如果此字符串中没有这样的字符在位置 fromIndex 处或其前出现,则返回 -1

所有的索引都以 char 值指定(Unicode 代码单元)。

参数:
ch - 一个字符(Unicode 代码点)。
fromIndex - 开始搜索的索引。fromIndex 的值没有限制。如果它大于或等于此字符串的长度,则它具有与小于此字符串长度的相同效果:将搜索整个字符串。如果它为负,则它的效果与它为 -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 >= Math.min(fromIndex, str.length()) && this.startsWith(str, k)
 
如果不存在这样的 k 值,则返回 -1。

参数:
str - 要搜索的子字符串。
fromIndex - 开始搜索的索引位置。
返回:
从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。

lastIndexOf

public int lastIndexOf(String str)
返回在此字符串中最右边出现的指定子字符串的索引。将最右边的空字符串 "" 视作发生在索引值 this.length() 处。返回的索引是
 this.startsWith(str, k)
 
为 true 的最大值 k

参数:
str - 要搜索的子字符串。
返回:
如果在此对象中字符串参数作为一个子字符串出现一次或多次,则返回最后一个这样的子字符串的第一个字符。如果它不作为一个子字符串出现,则返回 -1

lastIndexOf

public int lastIndexOf(String str,
                       int fromIndex)
从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。返回的整数是最大值 k,它满足:
     k <= Math.min(fromIndex, str.length()) && this.startsWith(str, k)
 
如果不存在这样的 k 值,则返回 -1。

参数:
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)
与下列方法调用完全相同:
 str.substring(begin, end)
定义此方法以使 String 类能够实现 CharSequence 接口。

指定者:
接口 CharSequence 中的 subSequence
参数:
beginIndex - 开始处的索引(包括)。
endIndex - 结束处的索引(不包括)。
返回:
指定子序列。
抛出:
IndexOutOfBoundsException - 如果 beginIndexendIndex 为负,如果 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 对象,用来表示与此 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 替换。

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 - 如果 snull
从以下版本开始:
1.5

replaceFirst

public String replaceFirst(String regex,
                           String replacement)
使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的第一个子字符串。

此方法调用的 str.replaceFirst(regex, repl) 形式产生与以下表达式完全相同的结果:

Pattern.compile(regex).matcher(str).replaceFirst(repl)

参数:
regex - 用来匹配此字符串的正则表达式
返回:
得到的 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)

参数:
regex - 用来匹配此字符串的正则表达式
返回:
得到的 String
抛出:
PatternSyntaxException - 如果正则表达式的语法无效
从以下版本开始:
1.4
另请参见:
Pattern

replace

public String replace(CharSequence target,
                      CharSequence replacement)
使用指定的字面值替换序列替换此字符串匹配字面值目标序列的每个子字符串。该替换从此字符串的开始一直到结束,例如,用 "b" 替换字符串 "aaa" 中的 "aa" 将生成 "ba" 而不是 "ab"。

参数:
target - 要被替换的 char 值序列
replacement - char 值的替换序列
返回:
得到的字符串
抛出:
NullPointerException - 如果 targetreplacementnull
从以下版本开始:
1.5

split

public String[] split(String regex,
                      int limit)
根据匹配给定的正则表达式来拆分此字符串。

此方法返回的数组包含此字符串的每个子字符串,这些子字符串由另一个匹配给定的表达式的子字符串终止或由字符串结束来终止。数组中的子字符串按它们在此字符串中的顺序排列。如果表达式不匹配输入的任何部分,则结果数组只具有一个元素,即此字符串。

limit 参数控制模式应用的次数,因此影响结果数组的长度。如果该限制 n 大于 0,则模式将被最多应用 n - 1 次,数组的长度将不会大于 n,而且数组的最后项将包含超出最后匹配的定界符的所有输入。如果 n 为非正,则模式将被应用尽可能多的次数,而且数组可以是任意长度。如果 n 为零,则模式将被应用尽可能多的次数,数组可有任何长度,并且结尾空字符串将被丢弃。

例如,字符串 "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 Standard 版本。由于大小写映射关系并不总是 1:1 的字符映射关系,得到的 String 可能具有不同于原始 String 的长度。

下表中给出了几个小写映射关系的例子:

语言环境的代码 大写字母 小写字母 描述
tr (Turkish) \u0130 \u0069 大写字母 I,上面有点 -> 小写字母 i
tr (Turkish) \u0049 \u0131 大写字母 I -> 小写字母 i,无点
(all) French Fries french fries 将字符串中的所有字符都小写
(all) capiotacapchi capthetacapupsil capsigma iotachi thetaupsilon sigma 将字符串中的所有字符都小写

参数:
locale - 使用此语言环境的大小写转换规则
返回:
要转换为小写的 String
从以下版本开始:
1.1
另请参见:
toLowerCase(), toUpperCase(), toUpperCase(Locale)

toLowerCase

public String toLowerCase()
使用默认语言环境的规则将此 String 中的所有字符都转换为小写。这等效于调用 toLowerCase(Locale.getDefault())

返回:
要转换为小写的 String
另请参见:
toLowerCase(Locale)

toUpperCase

public String toUpperCase(Locale locale)
使用给定的 Locale 规则将此 String 中的所有字符都转换为大写。大小写映射关系基于由 Character 类指定的 Unicode Standard 版本。由于大小写映射关系并不总是 1:1 的字符映射关系,得到的 String 可能具有不同于原始 String 的长度。

下表中是语言环境敏感和 1:M 大小写映射关系的一些例子。

语言环境的代码 小写 大写 描述
tr (Turkish) \u0069 \u0130 小写字母 i -> 大写字母 I,上面有点
tr (Turkish) \u0131 \u0049 无点的小写字母 -> 大写字母 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())

返回:
要转换为大写的 String
另请参见:
toUpperCase(Locale)

trim

public String trim()
返回字符串的副本,忽略前导空白和尾部空白。

如果此 String 对象表示一个空字符序列,或者此 String 对象表示的字符序列的第一个和最后一个字符的代码都大于 '\u0020'(空格字符),则返回对此 String 对象的引用。

否则,若字符串中没有代码大于 '\u0020' 的字符,则创建并返回一个表示空字符串的新的 String 对象。

否则,假定 k 为代码大于 '\u0020' 的第一个字符的索引,m 为代码大于 '\u0020' 的最后一个字符的索引。创建一个新的 String 对象,它表示此字符串中从索引 k 处的字符开始,到索引 m 处的字符结束的子字符串,也就是 this.substring(km+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 类规范的 Details 一节。
NullPointerException - 如果 formatnull
从以下版本开始:
1.5
另请参见:
Formatter

format

public static String format(Locale l,
                            String format,
                            Object... args)
使用指定的语言环境、格式字符串和参数返回一个格式化字符串。

参数:
l - 在格式化过程中要应用的语言环境。如果 lnull,则不进行本地化。
format - 格式字符串
args - 在格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数量是可变的,并且可以为零。参数的最大数目受《Java Virtual Machine Specification》所定义的 Java 数组的最大维度的限制。针对 null 参数的行为依赖于转换
返回:
一个格式化字符串
抛出:
IllegalFormatException - 如果格式字符串中包含非法语法,与给定参数不兼容的格式说明符,格式字符串给定的参数不够,或存在其他非法条件。有关所有可能的格式化错误的规范,请参阅 formatter 类规范的 Details 一节。
NullPointerException - 如果 formatnull
从以下版本开始:
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)
返回指定数组中表示该字符序列的字符串。

参数:
data - 字符数组。
offset - 子数组的初始偏移量。
count - 子数组的长度。
返回:
一个 String,它包含字符数组的指定子数组的字符。

copyValueOf

public static String copyValueOf(char[] data)
返回指定数组中表示该字符序列的字符串。

参数:
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 对象的引用。

它遵循对于任何两个字符串 st,当且仅当 s.equals(t)true 时,s.intern() == t.intern() 才为 true

所有字面值字符串和字符串赋值常量表达式都是内部的。字符串字面值在《Java Language Specification》的 §3.10.5 中已定义。

返回:
一个字符串,内容与此字符串相同,但它保证来自字符串池中。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策