-
所有已实现的接口:
- Serializable, CharSequence, Comparable< String>
public final class String extends Object implements Serializable, Comparable< String>, CharSequence
String
类代表字符串。Java 程序中的所有字符串字面值(如 "abc"
)都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'}; String str = new String(data);
下面给出了一些如何使用字符串的更多示例:
System.out.println("abc"); String cde = "cde"; System.out.println("abc" + cde); String c = "abc".substring(2,3); String d = cde.substring(1, 2);
String
类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。大小写映射基于 Character
类指定的 Unicode 标准版。
Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 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) 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String 。 |
|
String(byte[] bytes, Charset charset) 通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String 。 |
|
String(byte[] ascii, int hibyte) 已过时。 该方法无法将字节正确地转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是使用带有 Charset 、字符集名称,或使用平台默认字符集的 String 构造方法。 |
|
String(byte[] bytes, int offset, int length) 通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String 。 |
|
String(byte[] bytes, int offset, int length, Charset charset) 通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String 。 |
|
String(byte[] ascii, int hibyte, int offset, int count) 已过时。 该方法无法将字节正确地转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是使用带有 Charset 、字符集名称,或使用平台默认字符集的 String 构造方法。 |
|
String(byte[] bytes, int offset, int length, String charsetName) 通过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String 。 |
|
String(byte[] bytes, String charsetName) 通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 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) 将此字符串与指定的 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 替换此字符串匹配给定的正则表达式 |