String类方法
字符串是java的一大特色,它作为开发项目时的重要组成,其自身拥有大量的操作方法供开发者使用,写这篇文章就是说一说String类提供的一些操作方法的使用技巧以及它们的使用范例,那就跟我一起来学习吧。
字符串与字符
Ⅰ.public char charAt(int index)…查找字符的函数
该函数可以按照指定索引查找字符串中相应的字符并返回
public class MethodOfString {
public static void main(String[] args) {
String str = "www.csdn.cn" ;
char ch = str.charAt(5) ;
System.out.print(ch) ;
}
}
//输出结果: s
Ⅱ.public String(char[] value) …将字符数组转化为字符串
有的时候将字符数组转化为字符串用来获得更多的操作空间,需要注意的是该方法是构造方法,在字符串实例化的同时使用。
public class MethodOfString {
public static void main(String[] args) {
char[] ch = new char[] {'c', 's', 'd', 'n'} ;
String str = new String(ch) ;
System.out.print(str) ;
}
}
//输出结果: csdn
Ⅲ.public char[] toCharArray() …将字符串转化为字符数组
既然有字符数组转化为字符串的方法,也可以反着来,请看下面范例
public class MethodOfString {
public static void main(String[] args) {
String str = "csdn" ;
char[] ch = str.toCharArray() ;
for (char temp : ch) {
System.out.print(temp + ",") ;
}
}
}
//输出结果: c,s,d,n,
Ⅳ.public String(char[] value, int offset, int count)…与Ⅱ差不多,但是能选定范围
这里不再多讲解,方法中参数offset为起始索引,count为结束索引
字符串比较
Ⅰ.public boolean equals(String str)…比较两个字符串内容
这里补充一个知识点,基础数据类型的运算符操作的是内容,而引用数据类型则是堆内存地址,所以类似 str1 == str2,比较内容就是错误的,可以使用本方法进行内容上的比较。
public class MethodOfString {
public static void main(String[] args) {
String str1 = "csdn" ;
if (str1.equals("csdn")) {
System.out.print("相同") ;
}
}
}
//输出结果: 相同
Ⅱ.public int compareTo(String) …比较字符串大小
该函数可以根据unicode码表中而返回大小差值,大于0返回1,等于0返回0,小于0返回负数,如果两字符串长度不一致,以短的字符串的长度为比较长度。
public class MethodOfString {
public static void main(String[] args) {
String str1 = "csdn" ;
String str2 = "csdN" ;
System.out.print(str1.compareTo(str2)) ;
}
}
//输出结果: 32
字符串查找
Ⅰ.public int indexOf(String str)…字串查找
该方法能够从主串中从前向后查找子串,查找到返回字串在主串中的位置,找不到就返回 -1。不得不说,java实在强大啊,我学C的时候,这种方法都要自己实现,那个KMP算法搞得我头皮发麻,现在真是轻松了好多。看看实现范例吧。
public class MethodOfString {
public static void main(String[] args) {
String str1 = "www.csdn.cn" ;
String str2 = "csdn" ;
System.out.print(str1.indexOf(str2)) ;
}
}
//输出结果: 4
Ⅱ.public int lastIndexOf(String str)…反向字串查找
这个函数使用方法跟Ⅰ相同,只是是从字符串的最后向前查找,这里不再废话,看下一个方法。
Ⅲ.public contains(String str) … 字串查找
该方法是基于Ⅰ实现的,实现的源代码如下,它能告诉你是否查找到字串。
public boolean contains(CharSequence s) {
return indexOf(s.toString()) >= 0 ;
}
字符串替换
Ⅰ.public String replaceAll(String str1, String str2) … 全替换
该方法能将字符串中与str1对应的字符串全部替换为str2
public class MethodOfString {
public static void main(String[] args) {
String str1 = "www.csdn.cn" ;
String str2 = "W" ;
System.out.print(str1.replaceAll("w", str2)) ;
}
}
//输出结果: WWW.csdn.cn
Ⅱ.public String replaceFrist(String str1, String str2) … 替换首个字符串
将字符串中第一个str1替换为str2
public class MethodOfString {
public static void main(String[] args) {
String str1 = "www.csdn.cn" ;
String str2 = "W" ;
System.out.print(str1.replaceFirst("w", str2)) ;
}
}
//输出结果: Www.csdn.cn
字符串拆分
Ⅰ.public String[] split(String str) … 全拆分
该方法能够将字符串中以与str相同的串为拆分点拆开,并返回拆分后的字符串数组。
public class MethodOfString {
public static void main(String[] args) {
String str1 = "www.csdn.cn" ;
String str2 = "c" ;
String[] arrayOfstr = str1.split(str2) ;
for (String temp : arrayOfstr) {
System.out.print(temp + ",") ;
}
}
}
//输出结果: www.,sdn.,n,
Ⅱ.public String[] split(String str, int number) … 选择拆分
该方法可以选择将字符串拆分为number长度的字符串数组
public class MethodOfString {
public static void main(String[] args) {
String str1 = "www.csdn.cn" ;
String str2 = "c" ;
String[] arrayOfstr = str1.split(str2, 2) ;
for (String temp : arrayOfstr) {
System.out.print(temp + ",") ;
}
}
}
//输出结果: www.,sdn.cn,
字符串截取
Ⅰ.public String substring(int begin) … 从begin开始截取到结束
该方法能截取一部分的字符串并返回截取的串
public class MethodOfString {
public static void main(String[] args) {
String str1 = "www.csdn.cn" ;
System.out.print(str1.substring(4)) ;
}
}
//输出结果: csdn.cn
Ⅱ.public String substring(int begin, int end) … 从begin截取到end
该方法是Ⅰ的重载方法,能指定截取结束的点
public class MethodOfString {
public static void main(String[] args) {
String str1 = "www.csdn.cn" ;
System.out.print(str1.substring(4, 8)) ;
}
}
//输出结果: csdn
其它常用方法
Ⅰ.public int length() … 获取字符串长度
该函数能返回字符串长度,注意数组获取长度是length,而该方法后面多个"()",不要混淆。
Ⅱ.public boolean isEmpty() … 判断是否是空串
是返回 true,不是返回 false,该方法一定要在实例化对象的时候才能使用
JavaDoc文档介绍(补充)
JavaDoc文档是Java语言提供的语言使用手册与类库说明,在开发中需要反复查看。
Java10文档地址:http://docs.oracle.com/javase/10/docs/api/overview-summary.html
也可以直接搜索输入“java10 api”
JavaDoc文档每一个模块包含若干个包,每个包里有不同的类
END
由于时间仓促,还有一些比较常用的方法我还没有列举出来,欢迎各位读者指出我的错误和不足,我一定好好改正。求个赞朋友们,谢谢了。
参考文献
[1]李兴华.Java从入门到项目实战(全程视频版)[M].北京.中国水利水电出版社,2019(6):145-158.