- 字符串一旦被创建就不会被改变
- String a=“abc”,String a1=“abc” a==a1,结果为true。这是因为“abc”会被存放在常量池中,a1在创建时候会首先去常量池中找,有就直接引用,没有就创建,所以a和a1指向的是同一个地址值,但是如果以这种方式创建 String a1=new String(“abc”),那么a==a1结果为false,这种方式的对象不会在常量池中,而是在堆内存中。
- String类中的equals复写了object中的equals,不在是比较地址值,建立了自己判断字符串对象是否相同的依据,其实就是比较字符串内容
- String s = new String ()的构造函数可以将字节数组,字符数组整个或者一部分变成字符串。
- .length()获取字符串长度
.charAt(int index)获取相应索引处的字符
.indexOf(int ch)根据字符获取在字符串中第一次出现的位置(之所以参数为int类型是可以传 字符也可以传int)
.indexOf(int ch,int fromIndex)从指定位置进行ch的查找第一次出现位置
.indexOf(String str,fromIndex)
.lastIndexOf(int ch)从后边获取相应索引处的字符
.lastIndexOf(int ch,int fromIndex)从指定位置进行ch的查找第一次出现位置
.lastIndexOf(String str,fromIndex)
.subString(int beginIndex)从指定位置开始到结束位置的子字符串
.subString(int beginIndex, int endIndex)从指定位置开始到指定位置结束的子字符串 - 转换
.split()根据给定正则表达式的匹配拆分此字符串为字符串数组(如“,”把逗号切掉)
. toCharArray()将此字符串转化为字符数组。
.getBytes() 讲字符串转化为字节数组
.toUpperCase()大写
.toLowerCase()小写
.replace(char oldch, char newch)通过用newChar 替换此字符串中出现的所有oldChar得到新的字符串
.replace(String oldstr, String newstr)
.trim()将字符串两端的空格去除
.concat()将字符串进行连接
.valueOf( 基本类型),将基本类型转化为字符串
.compareTo()比较两个字符串的大小按照字典顺序,返回,如果参数字符串等于此字符串,则返回值0,如果此字符串按字典顺序小于字符串参数,则返回一个小于0的值,如果是大于则返回一个大于0的值 - StringBuffer特点:1,长度是可变的,默认长度是16。2,可以存储不同类型数据3,最终要转换成字符串进行使用4,可以对字符串进行修改
- .append(不同类型参数)添加
. insert(不同类型)自定位置插入任意 数据
. delete(int start,int end)删除方法从开始位置到结束位置,包含头,不包含尾
.deleteCharAt() 删除指定的位置
.charAt(int index)获取相应索引处的字符
.indexOf(String str)在字符串中第一次出现的位置
.lastIndexOf(String str)在字符串中最后一次出现的位置
.replace(int start, int end, String str)用str替换从start开始到end结束的字符串,不包括结尾
.void setCharAt(int index,char cha )根据指定位置替换一个字符
.setLength()设置长度
.reverse()翻转 - StringBuilder和StringBuffer的区别,前者不保证线程安全,后者保证安全。后者怎么保证安全的,是通如在添加和删除方法内添加同步代码块,因为两个方法在多线程容易出现线程不安全,但是如果单线程时候就会效率慢,所以jdk1.5出现StringBuilder。
String、StringBuffer、StrigBuilder
最新推荐文章于 2020-04-17 17:52:52 发布