一、定义
-
public final class String extends Object implements Serializable, Comparable<String>, CharSequence
String
类代表字符串。 Java程序中的所有字符串文字(例如"abc"
)都被实现为此类的实例。
字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,它们可以被共享。
String
类包括用于检查序列的各个字符的方法,用于比较字符串,搜索字符串,提取子字符串以及创建将所有字符翻译为大写或小写的字符串的副本。
二、属性
static Comparator<String> | CASE_INSENSITIVE_ORDER 一个比较器,按 |
三、构造方法
Constructor and Description |
---|
String() 初始化新创建的 |
String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造新的 |
String(byte[] bytes, Charset charset) 构造一个新的 |
String(byte[] ascii, int hibyte) 已弃用 此方法无法将字节正确转换为字符。 从JDK 1.1开始,首选的方法是通过 |
String(byte[] bytes, int offset, int length) 通过使用平台的默认字符集解码指定的字节子阵列来构造新的 |
String(byte[] bytes, int offset, int length, Charset charset) 构造一个新的 |
String(byte[] ascii, int hibyte, int offset, int count) 已弃用 此方法无法将字节正确转换为字符。 从JDK 1.1开始,首选的方式是通过 |
String(byte[] bytes, int offset, int length, String charsetName) 构造一个新的 |
String(byte[] bytes, String charsetName) 构造一个新的 |
String(char[] value) 分配一个新的 |
String(char[] value, int offset, int count) 分配一个新的 |
String(int[] codePoints, int offset, int count) 分配一个新的 |
String(String original) 初始化新创建的 |
String(StringBuffer buffer) 分配一个新的字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。 |
String(StringBuilder builder) 分配一个新的字符串,其中包含当前包含在字符串构建器参数中的字符序列。 |
四、方法
char | charAt(int index) 返回 |
int | codePointAt(int index) 返回指定索引处的字符(Unicode代码点)。 |
int | codePointBefore(int index) 返回指定索引之前的字符(Unicode代码点)。 |
int | codePointCount(int beginIndex, int endIndex) 返回此 |
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) 相当于 |
static String | copyValueOf(char[] data, int offset, int count) |
boolean | endsWith(String suffix) 测试此字符串是否以指定的后缀结尾。 |
boolean | equals(Object anObject) 将此字符串与指定对象进行比较。 |
boolean | equalsIgnoreCase(String anotherString) 将此 |
static String | format(Locale l, String format, Object... args) 使用指定的区域设置,格式字符串和参数返回格式化的字符串。 |
static String | format(String format, Object... args) 使用指定的格式字符串和参数返回格式化的字符串。 |
byte[] | getBytes() 使用平台的默认字符集将此 |
byte[] | getBytes(Charset charset) 使用给定的charset将该 |
void | getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin) 已弃用 此方法无法将字符正确转换为字节。 从JDK 1.1开始,首选的方法是通过 |
byte[] | getBytes(String charsetName) 使用命名的字符集将此 |
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) 返回一个新的字符串,由 |
static String | join(CharSequence delimiter, Iterable<? extends CharSequence> elements) 返回一个新 |
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) 返回此 |
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) 返回从替换所有出现的导致一个字符串 |
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 | toLowerCase(Locale locale) 将所有在此字符 |
String | toString() 此对象(已经是字符串!)本身已被返回。 |
String | toUpperCase() 将所有在此字符 |
String | toUpperCase(Locale locale) 将所有在此字符 |
String | trim() 返回一个字符串,其值为此字符串,并删除任何前导和尾随空格。 |
static String | valueOf(boolean b) 返回 |
static String | valueOf(char c) 返回 |
static String | valueOf(char[] data) 返回 |
static String | valueOf(char[] data, int offset, int count) 返回 |
static String | valueOf(double d) 返回 |
static String | valueOf(float f) 返回 |
static String | valueOf(int i) 返回 |
static String | valueOf(long l) 返回 |
static String | valueOf(Object obj) 返回 |
五、和StringBuffer、StringBuilder对比
1.String不可变长字符串,一旦定义,长度不可改变,而StringBuffer、StringBuilder可变长
2.StringBuilder是线程不安全的,而StringBuffer是线程安全的
3.不同的性能代表了试用场景的不同
String:适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
作为一个java程序员,String是基础中的基础,熟练使用String,了解其结构特性,是必备的知识。