String 类: 不可修改 (用 final 修饰)
(1) 构造方法
public String()
public String(byte[] bytes): 把字节数组转成字符串
public String(byte[] bytes,int index,int length): 把字节数组的一部份转成字符串
public String(char[] value,int index,int count): 把字符数组的一部份转成字符串
public String(String original): 初始化一个新创建的 String 对象, 使其表示一个与参数相同的字符序列; 换句话说, 新创建的字符串是该参数字符串的副本.
(2) 实例方法
1) 判断功能
public boolean equals(Object anObject) 判断字符串是否一样
public boolean equalsIgnoreCase(String anotherString) 判断字符串是否一样, 忽略大小写
public boolean contains(CharSequence s) 判断字符串是否包含哪字符串, CharSequence 是一个接口, String 类实现了该接口, 故可以传入 Sting 类型的参数
public boolean startsWith(String prefix) 判断字符串是否以什么开头
public boolean endsWith(String suffix) 判断字符串是否以什么结尾
public boolean isEmpty() 判断字符串是否为空字符串
2) 获取功能
int length(): 获取字符串的长度
char charAt(int index): 获取指定索引位置的字符
int indexOf(int ch): 获取指定字符在此字符串第一次出现处的索引
int indexOf(String str): 返回指定字符串在此字符串中第一次出现处的索引
int indexOf(int ch,int fromIndex): 返回指定字符在此字符串中指定位置后第一次出现处的索引
int indexOf(String str,int fromIndex): 返回指定字符串在此字符串中指定位置后第一次出现处的索引
int lastIndexOf() 最后出现的位置
String substring(int start): 从指定位置开始截取字符串, 默认到未尾
String substring(int start,int end): 从指定位置开始到指定位置结束截取字符图
3) 转换功能
byte[] getBytes(): 把字符串转换为字节数组
char[] toCharArray(): 把字符串转换为字符数组
static String valueOf(char[] chs): 把字符数组转成字符串
static String valueOf(int i): 把 int 类型的数据转成字符串
注意: String 类的 valueOf 方法可以把任意类型的数据转成字符串
String toLowerCase(): 把字符串转成小写
String toUpperCase(): 把字符串转成大写
String concat(String str): 把字符串拼接, 且只能拼接字符串.+ 方式拼接字符串时, 可以是任意类型
4) 其他
- public String replace(char oldChar, char newChar)// 替换字符
- public String replace(CharSequence target, CharSequence replacement) // 替换字符串
- String trim();// 去除前后空格
- public int compareTo(String anotherString) // 比较, 根据 ASCII 码表进行比较
- public int compareToIgnoreCase(String str) // 比较
关于 compareTo() 方法: 逐字符进行作差, 当差为 0 时比较下个字符知道比较结束.
- String s1 = "abc";
- String s2 = "ABC";
- int b = s1.compareTo(s2);
- System.out.println(b); //32 ==> 'a'-'A' ==> 97-65=32
- public int compareTo(String anotherString) {
- int len1 = value.length;
- int len2 = anotherString.value.length;
- int lim = Math.min(len1, len2);
- char v1[] = value;
- char v2[] = anotherString.value;
- int k = 0;
- while (k < lim) {
- char c1 = v1[k];
- char c2 = v2[k];
- if (c1 != c2) {
- return c1 - c2;
- }
- k++;
- }
- return len1 - len2;
- }
StringBuffer 类: 可以修改, 线程安全, 父类是 AbstractStringBuilder.
StringBuffer 类内部有个字符缓冲数组, 实际上操作的也是这个数组. 而 String 类也有个字符数组, 但该数组用 final 修饰, 并且在构造方法中进行了初始化, 故无法修改.
(1) 构造方法
public StringBuffer() : 空参构造方法, 默认容量为 16
public StringBuffer(int capacity) : 指定容量
public StringBuffer(String str) : 按照给定的字符串来初始化字符数组
(2) 添加方法
- public synchronized StringBuffer append
- public synchronized StringBuffer insert
(3) 删除方法
deleteCharAt(int index) 删除指定索引的字符
delete(int start,int end): 删除开始到结束位置的字符
(4) 反转方法
public synchronized StringBuffer reverse()
(5) 截取功能, 返回值是 String
public String substring(int start): 从指定位置截取到末尾
public String substring(int start,int end): 截取从指定位置开始到结束位置, 包括开始位置, 不包括结束位置
(6)String 和 StringBuffer 相互转换
String 转 StringBuffer:
1) 构造方法 new StringBuffer(String str)
2) 利用 StringBuffer 的 append 方法
StringBuffer 转 String:
1)String 类的构造方法 new String(StringBuffer s)
2)StringBuffer 的 toString 方法
3)StringBuffer 的 substring 方法
来源: http://www.bubuko.com/infodetail-3281151.html