字符串
Java9之前字符串采用char[]数组保存字符,即每个字符占2个字节
Java9之后采用byte[]数组 + encoding-flag保存字符,即每个字符只占1个字节
String类
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence, Constable, ConstantDesc
-
java.lang.String
-
不可变类 , 即String对象创建后 它的字符序列是不可变的
构造
-
String()
创建一个包含0个字符串序列的String对象 (并不是null)
-
String(char[] value)
-
String(char[] value, int offset, int count)
-
String(String original)
-
String(StringBuffer buffer)
-
String(StringBuilder builder)
String str = "abc";
//is equivalent to:
char data[] = {'a', 'b', 'c'};
tring str = new String(data);
非静态方法
长度类
length()
isEmpty()
- Returns
true
if, and only if,length()
is0
与char转换
charAt
- 获取字符串指定位置的字符
toCharArray
字符串比较
compareTo
-
对字符串内容按字典顺序进行大小比较
-
如果字符序列相等, 返回0
-
如果 字符序列不等 ,则返回 第一个不等的字符差
-
特殊地,如果短字符串 与 长字符串的前面部分完全一样,则返回长度差
-
compareToIgnoreCase
- 同上, 但是忽略大小写差异
equals
- String类的equals()方法 内部重写了 ,比较的是内容 而不是地址
- equals只返回 true or false. compareTo 返回的是 int 型
equalsIgnoreCase
- 同上,忽略大小写差异
子串
contains
- 判断是否被包含
substring
- 提取子串
public String substring(int beginIndex);
public String substring(int beginIndex, int endIndex); /* beginIndex 到 endIndex-1 */
字符串连接
concat
- 将参数中的字符串str连接到当前字符串的后面,效果等价于"+"
大小写转换
toLowerCase
toUpperCase
字符/子串查找
indexOf
- 返回字符或子串在当前字符串中从左边起首次出现的位置,若没有出现则返回-1
public int indexOf(int ch/String str);
public int indexOf(int ch/String str, int fromIndex);
lastIndexOf
public int lastIndexOf(int ch/String str);
public int lastIndexOf(int ch/String str, int fromIndex);
字符/字符串的替换
replace
- 替换所有的oldChar字符,并返回一个 新的 字符串
replaceFirst/replaceAll
- 字符串的替换 第一个/全部
public String replaceFirst(String regex, String replacement);
public String replaceAll(String regex, String replacement);
分解字符串
split
其他
getChars
- 将字符串 从 srcBegin开始 到srcEnd结束 复制到dst字符数组中,起始复制位置为dstBegin
- the last character to be copied is at index
srcEnd-1
statWith/endWith
- 判断 起始/终止 字符串 是否相同
boolean statWith(String prefix);
boolean endWith(String suffix);
静态方法
与基本类型的转换
-
基本类型转换为 字符串类型
static String valueOf(char data[]) static String valueOf(char data[], int offset, int count) static String valueOf(boolean b) static String valueOf(char c) static String valueOf(int i) static String valueOf(long l) static String valueOf(float f) static String valueOf(double d)
-
字符串类型转换为 基本类型 : 包装类的方法
public static byte parseByte(String s) public static short parseShort(String s) public static short parseInt(String s) public static long parseLong(String s) public static float parseFloat(String s) public static double parseDouble(String s) EG: double a = Double.parseDouble("1.2");
StringBuilder类
构造
//默认容量=16
StringBuilder()
//指定容量
StringBuilder (int capacity)
StringBuilder (CharSequence seq)
StringBuilder (String str)
//eg:
StringBuilder strB = new StringBuilder();
方法
插入/删除 字符/字符串
append
insert
delete
end
- The ending index, exclusive.
StringBuilder delete (int start, int end)
StringBuilder deleteCharAt (int index)
反转字符串
reverse
转换为String
StringBuffer类
- 线程安全的