该方法的作用是判断两个字符串对象的内容是否相同。如果相同则返回true,否则返回false。例如:
String s = “abc”;
String s1 = new String(“abc”);
boolean b = s.equals(s1);
而使用“==”比较的是两个对象在内存中存储的地址是否一样。例如上面的代码中,如果判断:
boolean b = (s == s1);
则变量b的值是false,因为s对象对应的地址是”abc”的地址,而s1使用new关键字申请新的内存,所以内存地址和s的”abc”的地址不一样,所以获得的值是false。
在String类中存在一个类似的方法equalsIgnoreCase,该方法的作用是忽略大小写比较两个字符串的内容是否相同。例如:
String s = “abc”;
String s1 =”ABC”;
boolean b = s. equalsIgnoreCase (s1);
则变量b的值是true。
f、getBytes方法
该方法的作用是将字符串转换为对应的byte数组,从而便于数据的存储和传输。例:
String s = “计算机”;
byte[] b = s.getBytes(); //使用本机默认的字符串转换为byte数组
byte[] b = s.getBytes(“gb2312”); //使用gb2312字符集转换为byte数组
在实际转换时,一定要注意字符集的问题,否则中文在转换时将会出现问题。
g、indexOf方法
该方法的作用是查找特定字符或字符串在当前字符串中的起始位置,如果不存在则返回-1。例:
String s = “abcded”;
int index = s.indexOf(‘d’);
int index1 = s.indexOf(‘h’);
则返回字符d在字符串s中第一次出现的位置,数值为3。由于字符h在字符串s中不存在,则index1的值是-1。
当然,也可以从特定位置以后查找对应的字符,例:
int index = s.indexOf(‘d’,4);
则查找字符串s中从索引值4(包括4)以后的字符中第一个出现的字符d,则index的值是5。
由于indexOf是重载的,也可以查找特定字符串在当前字符串中出现的起始位置,使用方式和查找字符的方式一样。
另外一个类似的方法是lastIndexOf方法,其作用是从字符串的末尾开始向前查找第一次出现的规定的字符或字符串,例如:
String s = “abcded”;
int index = s. lastIndexOf(‘d’);
则index的值是5。
h、length方法
该方法的作用是返回字符串的长度,也就是返回字符串中字符的个数。中文字符也是一个字符。例:
String s = “abc”;
String s1 = “Java语言”;
int len = s.length();
int len1 = s1.length();
则变量len的值是3,变量len1的值是6。
i、replace方法
该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例:
String s = “abcat”;
String s1 = s.replace(‘a’,’1’);
该代码的作用是将字符串s中所有的字符a替换成字符1,生成的新字符串s1的值是”1bc1t”,而字符串s的内容不发生改变
如果需要将字符串中某个指定的字符串替换为其它字符串,则可以使用replaceAll方法,例
String s = “abatbac”;
String s1 = s.replaceAll(“ba”,”12”);
该代码的作用是将字符串s中所有的字符串”ab”替换为”12”,生成新的字符串”a12t12c”,而字符串s的内容也不发生改变
如果只需要替换第一个出现的指定字符串时,可以使用replaceFirst方法,例
String s = “abatbac”;
String s1 = s. replaceFirst (“ba”,”12”);
该代码的作用是只将字符串s中第一次出现的字符串”ab”替换为字符串”12”,则字符串s1的值是”a12tbac”,字符串s的内容也不发生改变
j、split方法
该方法的作用是以特定的字符串作为间隔,拆分当前字符串的内容,一般拆分以后会获得一个字符串数组。例
String s = “ab,12,df”;
String s1[] = s.split(“,”);
该代码的作用是以字符串”,”作为间隔,拆分字符串s,从而得到拆分以后的字符串数字s1,其内容为:{“ab”,”12”,”df”}。
该方法是解析字符串的基础方法。
如果字符串中在内部存在和间隔字符串相同的内容时将拆除空字符串,尾部的空字符串会被忽略掉。例
String s = “abbcbtbb”;
String s1[] = s.split(“b”);
则拆分出的结果字符串数组s1的内容为:{“a”,””,”c”,”t”}。拆分出的中间的空字符串的数量等于中间间隔字符串的数量减一个。例
String s = “abbbcbtbbb”;
String s1[] = s.split(“b”);
则拆分出的结果是:{“a”,””,””,”c”,”t”}。最后的空字符串不论有多少个,都会被忽略
如果需要限定拆分以后的字符串数量,则可以使用另外一个split方法,例
String s = “abcbtb1”;
String s1[] = s.split(“b”,2);
则结果为:{“a”,”cbtb1”}
如果第二个参数为负数,则拆分出尽可能多的字符串,包括尾部的空字符串也将被保留
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |