概述
字符串的常见方法:
API文档中可以看到,字符串有很多的方法,此处我们列举最常用的几种方法,最好熟记。
一.字符串的内容比较方法:
前文我们已经知道了应用类型==是进行对象的地址值比较,如果确实需要字符串的内容比较,可以使用两个方法:
1.public boolean equals(Object obj):参数可以是任何对象,
只有参数是一个字符串并且内容相同才会给true,否则返回false;
注意事项:
1.任何对象都能用Object进行接收。
2.equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。
String str1 = "Hello"; String str2 = "Hello"; char[] charArraylist = {'H','e','l','l','o'}; String str3 = new String(charArraylist); System.out.println(str1.equals(str2)); // true System.out.println(str1.equals(str3)); // true System.out.println(str3.equals("Hello")); // true System.out.println("Hello".equals(str1)); // true
3.如果比较双方一个常量一个变量,推荐把常量字符串写在前面。
推荐:"abc".equals(str),而不是str.equals("abc")
String str5 = "abc"; System.out.println("abc".equals(str5)); // true System.out.println(str5.equals("abc")); // true
上述仍旧是true值,但是注意如果str5赋值的是null,没有地址也没有数值,此时第一种方法,正常编译,返回false,而第二种则会报错,空指针异常。
String str5 = null; System.out.println("abc".equals(str5)); // false 推荐 System.out.println(str5.equals("abc")); // 报错!空指针异常
2.public bolean equalsIgnoreCase(String str):忽略大小写,进行内容比较。
注意事项:
1.只有英文字母区分大小写,其他都不区分大小写。
2.参数只能是字符串类型。
String stra = "Java"; String strb = "java"; System.out.println(stra.equals(strb)); // false 严格区分大小写 System.out.println(stra.equalsIgnoreCase(strb)); // true
二.字符串的获取方法
String当中获取相关的常用方法有:
1.public int length():获取字符串当中含有的字符个数,拿到字符串长度。
// 获取字符串长度 int length = "adlkjalgjh;anbj".length(); System.out.println("字符串的长度为:" + length);
2.publi String concat(String str):将当前字符串和参数字符串拼接成为返回值新的字符串。
// 拼接字符串 String str1 = "Hello "; String str2 = "World"; String str3 = str1.concat(str2); // Hello World
注意事项:
1.String声明的局部变量,作为String类的实例对象,此处打印并不是地址值,而是内容,是因为它和ArrayList一样改写继承自基类的 toString()方法。
相关知识点:但是对象1==对象2时比较的是地址值哦!
2.此处str1的地址值是“Hello "在字符串常量池中的地址,str2的地址值是"World"在字符串常量池中的地址,而拼接出来的str3是一个全新的字符串,str1和str2都是没有改变的。
3.public char charAt(int index):获取指定索引位置的单个字符。(索引从0开始)
char c = str1.charAt(0); System.out.println(c); System.out.println("-----------");
4.public int indexOf(String str或者char c):查找参数字符串或参数字符在本字符串当中首次出现的索引位置,如果没有返回-1值。
int num = str1.indexOf('c'); int num2 = str1.indexOf("ll"); System.out.println(num); // -1 System.out.println(num2); // 2
三.字符串的截取方法
1.public String substring(int index):截取从参数位置一直到字符串末尾,返回新的字符串。
String str1 = "HelloWorld"; String str2 = str1.substring(5); System.out.println(str2); // World
2.public String substring(int begin,int end):截取从begin开始,一直到end结束,中间的字符串。
备注:[begin,end),左闭右开区间。
类似知识点:Random类的nextInt(int num)也是左闭右开区间产生一个随机整数。
String str3 = "我爱中国!"; String str4 = str3.substring(2,4); System.out.println(str4); // 中国
四.字符串的转换方法
1.public char[] toCharArray():将当前字符串拆分成为字符数组作为返回值。
String str1 = "hello"; char[] chars = str1.toCharArray(); System.out.println(chars.length); // 5 System.out.println("----------");
2.public byte[] getBytes():获得当前字符串底层的字节数组。
String str2 = "world"; byte[] bytes = str2.getBytes(); System.out.println(bytes.length); // 5 System.out.println("----------");
3.public String replace(CharSequence oldString,charSequence newString):将所有出现的老字符替换成为新的字符串,返回替换之后的结果新字符串。
String str4 = "我爱大家我爱大家我爱大家!"; String str5 = str4.replace("大家","国家"); System.out.println(str5);
备注:CharSequence意思就是说可以接受字符串类型。
五.字符串的分割方法
public String[] split(String regex):按照参数的规则,将字符串切分成为若干部分。
String str = "aaa,bbb,ccc"; String[] strs = str.split(","); // System.out.println(strs); // 地址值 for (int i = 0;i < strs.length;i++){ System.out.println(strs[i]); //aaa bbb ccc跨行输出 }
注意事项:
split方法的参数其实是一个正则表达式,今后学习。目前需要注意的就是,如果按照英文句点“.”进行切分,必须写“\.”,因为这个句点单独出现的时候在正则表达式中有特殊含义。
String str2 = "aaa.bbb.ccc"; String[] strs2 = str.split("."); System.out.println(strs.length); // 0 for (int i = 0;i < strs2.length;i++){ System.out.println(strs2[i]); //切失败,无输出 }
String str2 = "aaa.bbb.ccc"; String[] strs2 = str.split("\."); System.out.println(strs.length); // 3 for (int i = 0;i < strs2.length;i++){ System.out.println(strs2[i]); //aaa bbb ccc跨行输出 }
最后
以上就是爱听歌蜜粉为你收集整理的字符串常用方法的全部内容,希望文章能够帮你解决字符串常用方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复