目录
2、String str = new String("字符串");
3、String str = new String(new char[]{字符});
🐱🐉🐱🐉
一、字符串构造
String类提供了多个构造方法,主要有以下三种
1、String str = "字符串";
第一种双引号引起来的字符,先从字符串常量池里面找。如果找到就返回地址,如果没有找到就从字符串常量池里面创建,然后返回新创建对象的地址
2、String str = new String("字符串");
第二种字符串构造方法,先从堆上创建一个字符串对象,然后双引号引起来的字符串从字符串常量池里面找,如果找到就返回字符串的地址给该字符串对象的value值,如果没有,就在字符串常量池里创建,然后返回字符串地址
3、String str = new String(new char[]{字符});
第三种字符串构造方法,先从堆上创建一个字符串对象,然后创建一个字符数组,然后将这个字符数组拷贝一份后,将拷贝后的字符数组的地址给字符串对象,然后在看字符串常量池里面有么有,有就返回地址,没有就创建然后返回地址
二、字符串比较的方法
1、==比较
这种比较对于引用类型比较的是两个对象的地址
2、equals
语法:字符串1.equals(字符串2);
如果两个字符串相同返回true反之返回false
3、equalsIgnoreCase
与equals使用方法相同,不过区别是equals比较时不会忽略大小写,这个方法则会忽略大小写
4、compareTo
语法:字符串1.compareTo(字符串2);
类似于C语言里面的strcmp,返回值是一个整数
5、compareToIgnoreCase
与前一个不同的是,compareTo比较时不会忽略大小写,而这个方法会忽略大小写
三、字符串查找的方法
1、字符串里访问第n个字符
语法: char ch = str.charAt(n);
2、字符a第一次出现的位置
语法:int index = str.indexOf(a);
3、从n开始字符a第一次出现的位置
语法:int index = str.index(a,n);
4、字符串s第一次出现的位置
语法:int index = str.indexOf(s);
5、从n开始字符串s第一次出现的位置
语法:int index = str.indexOf(s,n);
6、从后往前开时字符a第一次出现的位置
语法:int index = str.lastIndexOf(a);
7、第n个位置开始从后往前字符a第一次出现的位置
语法:int index = str.lastIndexOf(a,n);
8、从后往前字符串s第一次出现的位置
语法:int index = str.lastIndexOf(s);
9、第n个位置开始从后往前字符串s第一次出现的位置
语法: int index = str.lastIndexOf(s,n);
四、字符串转换方法
1、数值转字符串
语法:String str = String.valueOf(数值);
除了整形浮点型数值外,boolean与引用类型也可以转为为字符串
2、字符串转数字
语法:int data = Integer.parseInt(str);
double data = Double.parseDoub(str);
……
如果要将字符串按不同的进制转为数值,只需要在pareInt方法的第二个参数传入对应的进制数即可
3、字符串大小写转换
1、toUpperCase
转大写:String str = s.toUpperCase();
2、toLoewerCase
转小写:String str = s.toLowerCase();
4、字符串转字符数组
语法:char[] ch = str.toCharArray();
5、格式化输出
语法:String str = String.format("%d-%d-%d",2002,20,20);
在后续输出字符串str时就会以格式进行输出
五、字符串替换
1、replace
语法:replace(dest,src)
dest:将要被替换的
src:被代替成的
2、replaceAll
语法:replaceAll(dest,src)
与上面的方法相同都是将字符串里的dest全部替换
3、replaceFirst
语法:replaceFirst(dest,src)
只替换字符串里第一次出现的dest
以上字符串替换函数使用时,自身没有改变,而是new了一个新的字符串
六、字符串拆分
1、全部拆分
String[] str = s.split(字符):
2、分组拆分
String[] str = s.split(字符,要拆几个组);
3、按多个字符拆分
String[] str = s.split(字符1|字符2);
如果要按字符'*','+','|‘来拆分,要加上转义字符”\\"
七、字符串截取
1、从n开始截取
str.subString(n);
2、从n截取到m
s.subString(n,m)
n到m是左闭右开的区间,并且要注意不能越界