Java字符串知识点总结
字符串1.创建字符串//字符串的本质是一个字符串数组,一旦创建之后在不能被修改,如果修改实际上是指向了一个新对象,原有的字符还//存在于内存中String a = new String("abc");//不推荐String b = "abc";String c = new String(byte[],String charsetName)2.字符串常用API方法名称描述...
·
字符串
1.创建字符串
//字符串的本质是一个字符串数组,一旦创建之后在不能被修改,如果修改实际上是指向了一个新对象,原有的字符还
//存在于内存中
String a = new String("abc");//不推荐
String b = "abc";
String c = new String(byte[],String charsetName)
2.字符串常用API
方法名称 | 描述 |
---|---|
equals(String string) | 判断两个字符串是否相等 |
equalsIgnoreCase(String string) | 忽略大小写判断两个字符串是否相等 |
length() | 获取字符串长度 |
charAt(int index) | 获取某个索引处的字符 |
indexOf(String string) | 获取字符串第一次出现的位置 |
indexOf(String string,int startIndex) | 从startIndex处查找第一次出现的位置 |
lastIndexOf(String string) | 字符串最后一次出现的位置 |
startsWith(String string) | 判断是否以string开始 |
endsWith(String string) | 判断是否以string结尾 |
compareTo(String string) | 比较字符串大小 |
toLowerCase() | 字符串转小写 |
toUpperCase() | 字符串转大写 |
subString(int index) | 从index位置处截取到字符串末尾 |
subString(int startIndex,int endIndex) | 从startIndex位置开始,到endIndex结束,前闭后开 |
trim() | 去除字符串首尾空格 |
split(String string) | 以string对字符串进行分割,此方法会省略末尾空字符 |
split(String string,int limit) | 对字符串进行分割,此方法不会省略末尾空字符 |
join(String s,String…str) | 以s为连接符,连接str内字符串 |
concat(String str) | 连接字符串 |
valueOf() | 基本类型转字符串 |
contains(String str) | 判断是否包含str |
toCharArray(String str) | 将字符串转换成字符数组 |
intern() | |
isEmpty() | 判断字符串是否为空 |
3.可变参数
- 本质是一个数组
- 参数可以传0个,也可以传1个,也可以传多个
- 使用可变参数前,要判断参数是否为null,以及长度是否大于0
4.字符串类型转换
- 基本类型转字符串:包装类.parseXXX()
- 字符串转基本类型: String.valueOf()
5.==和equals的区别
- ==用于判断内存中值是否相等
- equals用于判断对象是否相等
6.String中的陷阱
- String a=“abc”;String b=“abc”,a==b?和a.equals(b)
- String a = “abc”;String b = new String(“abc”);a==b?和a.equals(b)
- String类可以被继承吗?
7.StringBuffer和StringBuilder
方法 | 描述 |
---|---|
append(String str) | 字符串末尾追加字符串 |
delete(int start, int end) | 删除区间内字符 |
deleteCharAt(int index) | 删除索引处字符 |
replace(int start, int end, String str) | 替换区间内的字符 |
substring(int start) | 从start处截取到末尾 |
substring(int start, int end) | 从start处截取到end |
insert(int offset, String str) | 索引处插入字符串 |
indexOf(String str) | 第一次出现的位置 |
reverse() | 字符序列反转 |
toString() | 对象转成字符串 |
8.StringBuffer和StringBuilder和String的区别
相同点:
-
底层都是用数组实现的
-
都是CharSequence的子类
-
都是用final修饰的,不能被继承
不同点:
- String创建的对象是不可变的,改变String对象的值实际是指向新的对象
- StringBuffer和StringBuilder创建的对象是可变的。
- StringBuffer是线程安全的,StringBuilder是非线程安全的。
更多推荐
已为社区贡献1条内容
所有评论(0)