String类
String类常用方法:
①length():
length() 长度 方法**
对比:数组.length 属性**
一般情况下,一个数字,一个字母,一个汉字都是一个字符,只是所占字节属不同,一般一个汉字占2个字符,字母,数字占一个字符;不同编码字符所占字节数不同,这里的String类中length长度代表字符数,不是字节;
②equals():
判断字符串的内容是否相等
重写后的equals()方法比较原理:
输入时忽略大小写方法:
equalsIgnoreCase():忽略大小写的比较字符串内容
toLowerCase():转换为小写(返回值是String类型)
toUpperCase():转换为大写(返回值是String类型)
③equals()与==的区别
一开始,equals()与==作用一样:
比较两个字符串内存地址是否一致,是否为同一对象
后来,String类对equals()方法进行了重写,equals()变成了比较两个字符串的内容是否相等了
分析:(1)当String s1=”java”;时,java是放在字符串池中,当String s2 =”java”;时,字符串池中已存在java对象,不再创建,s2直接指向字符串池中对象,所以s1和s2是创建了一个对象(池中对象可以被共享);
(2)如果String s3=new String(”java”);字符创中已有java对象,则不再在字符串池中创建java对象,此时只在堆中new创建一个java对象(每new一次,都在堆中创建一个对象,且变量引用指向堆中对象)
(3)当String s3=new String(”JAVA”);时,先在字符串池中创建JAVA对象,又在堆中new创建一个对象,实际上一句代码创建了俩个对象,但是s3指向堆中的对象;
创建了几个字符串对象? 常见的面试问题****
④字符串连接
① “+”号:只要“+”号两端中一段有字符串,整体就是字符串,加号起拼接作用,String a="ab"+"cd",类似于:String a = "abcd";
② concat()
注意:*********
字符串是常量;它们的值在创建之后不能更改。
字符串方法操作的(产生变化的方法:变大写、小写、连接、截取......)变化都作用于字符串的副本,而不是本身
⑤字符串常用的提取方法
String字符串下标从0开始计算,空格也算一个字符
indexOf():第一次出现
lastIndexOf():最后一次出现
如果找不到,返回-1
substring():
substring(int start):从start(包含)开始截取,截取到字符串的末尾
substring(int start,int end):从start(包含)开始截取,截取到end(不包含)位置为止
(6)split():对字符串进行拆分 ----返回值:String[]
注意:以上只是一些常用方法,具体方法,请参考Java API