==与equals()方法
前言:
==与.equals()是不一样的,==是比较两者值的地址,,equals()是比较两者的值,如下:
我们把要赋予的值设为A,看两种赋值的变化
String变量赋值:
String a="A"; String b="A";
a==b; 结果为true a.equals(b); 结果为true
可见,直接赋值变量,两次比较的结果都一样
新建String对象赋值:
String aa=new String("A"); String bb=new String("A");
aa==bb; 结果为false aa.equals(bb); 结果为true
可见之前判断的为正确,但是为什么第一次和第二次用==的结果不一样呢?原因是在变量赋予的过程中产生了一个常量池,变量每次赋值之前都会在常量池中寻找是否有和要赋予的值一样的值,如果有,则两者共用一个地址。而新建对象是开辟了一个全新的对象空间,所以对象的==对比地址不相同。
String的常用方法
1.值比较方法
字符串一.equals(字符串二);
说明:
比较两个字符串是否相等,返回布尔值,相等返回true,不相等返回false
2.不分大小写的值比较方法
字符串一.equalsIgnoreCase(字符串二);
说明:
忽略大小写比较两个字符串是否相等,返回布尔值,相等返回true,不相等返回false
3.大小写改变方法
字符串.toLowerCase(); 将字符串改成全小写,返回全小写的字符串
字符串.toUpperCase(); 将字符串改成全大写,返回全大写的字符串
4.字符串连接方法
字符串1.concat(字符串2); 将字符串2连接到字符串1的后面,返回连接后的字符串
5.根据字符或数字查询字符串或数字串中第一个该字符或数字的索引
"天天向上".indexOf("天"); 返回值为int类型的该索引号,这里查询"天"索引为0
6.根据字符或数字查询字符串或数字串中最后一个该字符或数字的索引
"天天向上".lastIndexOf("天"); 返回值为int类型的该索引号,这里查询"天"索引为1
7.根据索引提取字符串
"天天向上".substring(3); 返回值为String类型的索引号3的字符,这里查询为"上"
"好好学习,天天向上".substring(int beginindex,int endindex);
这里需要传入两个参数,作用是提取字符串索引beginindex到索引endindex-1之间的字符串,如下:
String a="好好学习,天天向上";
a.substring(5,a.lenght); 这里提取出"天天向上",返回值为"天天向上"
8.过滤字符串前后多余空格
" 天天向上 ".trim(); 这里过滤掉字符串前后多余的空格,返回值为过滤后的字符串
9.拆分字符串
字符串.split(String separator,int limit);
说明:
separator:从separator开始前后拆分成数组,separator本身则删除,可写可不写,不选则返回整个字符串的单一数组。
limit:该值用于限制返回数组中的元素个数,可写可不写
语法:
String a="好好学习 天天向上";
String[] aa=new Strinh[100];
aa=a.split(" ");
aa[0]的值为"好好学习" aa[1]的值为"天天向上"