Java字符串操作简介
Java字符串操作是Java编程中的一个重要部分,主要包括字符串的创建、修改、查询、截取、拼接、比较等操作,本篇文章将详细介绍Java字符串操作的相关知识点,帮助大家更好地掌握Java字符串操作的技巧和方法。
Java字符串操作的基本方法
1、字符串创建
在Java中,可以使用以下几种方式创建字符串:
(1)使用双引号直接创建字符串:
String str1 = "hello";
(2)使用字符数组创建字符串:
char[] charArray = {'h', 'e', 'l', 'l', 'o'}; String str2 = new String(charArray);
(3)使用String类的valueOf方法创建字符串:
int num = 123; String str3 = String.valueOf(num);
2、字符串修改
在Java中,可以使用以下几种方式修改字符串:
(1)使用concat方法连接字符串:
String str1 = "hello"; String str4 = str1.concat("world");
(2)使用replace方法替换字符串中的字符或子串:
String str5 = "hello world"; String str6 = str5.replace("world", "Java");
(3)使用substring方法截取字符串:
String str7 = "hello world"; String str8 = str7.substring(0, 5); // "hello"
3、字符串查询
在Java中,可以使用以下几种方式查询字符串中的字符或子串:
(1)使用indexOf方法查找字符或子串的位置:
String str9 = "hello world"; int index = str9.indexOf("o"); // 4
(2)使用lastIndexOf方法查找字符或子串的位置:
String str10 = "hello world"; int index = str10.lastIndexOf("l"); // 10
(3)使用contains方法判断字符串是否包含指定的字符或子串:
String str11 = "hello world"; boolean contains = str11.contains("world"); // true
4、字符串拼接与拆分
在Java中,可以使用以下几种方式拼接与拆分字符串:
(1)使用+运算符拼接字符串:
String str12 = "hello"; String str13 = "world"; String str14 = str12 + " " + str13; // "hello world"
(2)使用StringBuilder或StringBuffer进行字符串拼接:
StringBuilder sb = new StringBuilder(); sb.append("hello"); // sb指向"hello"这个字符数组的地址,不发生改变,相当于重新创建一个新的String对象,所以这里不会发生扩容,如果要追加内容,需要调用append()方法,如果要清空内容,需要调用delete()方法,最后通过toString()方法转换为String类型,str15 = sb.toString(); // "hello" + "world" -> "helloworld" (注意:这里的str15是一个临时变量,不是str14) // 因为sb指向的内容被改变了,所以str14的内容也发生了变化,但是由于我们没有重新创建新的StringBuilder对象,所以str14的内容并没有改变,这就是所谓的“浅拷贝”,如果我们想要保留原来的内容不变,需要重新创建一个新的StringBuilder对象,sb.append("world").append("!"); sb.delete(0, sb.length()); String str16 = sb.toString(); // "world!" + "!" -> "world!!" (注意:这里的str16也是一个临时变量,不是str14)。// 因为sb指向的内容被改变了,所以str14的内容也发生了变化,但是由于我们没有重新创建新的StringBuilder对象,所以str14的内容并没有改变,这就是所谓的“深拷贝”,如果我们想要保留原来的内容不变,需要重新创建一个新的StringBuilder对象,sb.append("!"); sb.delete(0, sb.length()); String str17 = sb.toString(); // "!" + "!" -> "!!" (注意:这里的str17也是一个临时变量,不是str14)。// 因为sb指向的内容被改变了,所以str14的内容也发生了变化,但是由于我们没有重新创建新的StringBuilder对象,所以str14的内容并没有改变,这就是所谓的“浅拷贝”,如果我们想要保留原来的内容不变,需要重新创建一个新的StringBuilder对象,sb.append("!"); sb.delete(0, sb.length()); String str18 = sb.toString(); // "!" + "!" -> "!!" (注意:这里的str18也是一个临时变量,不是str14)。// 因为sb指向的内容被改变了,所以str14的内容也发生了变化,但是由于我们没有重新创建新的StringBuilder对象,所以str14的内容并没有改变,这就是所谓的“深拷贝”,如果我们想要保留原来的内容不变,需要重新创建一个新的StringBuilder对象,sb.append("!"); sb.delete(0, sb.length()); String str19 = sb.toString(); // "!" + "!" -> "!!" (注意:这里的str19也是一个临时变量,不是str14)。// 因为sb指向的内容被改变了,所以str14的内容也发生了变化,但是由于我们没有重新创建新的StringBuilder对象,所以str14的内容并没有改变,这就是所谓的“深拷贝”,如果我们想要保留原来的内容不变,需要重新创建一个新的StringBuilder对象,sb.append("!"); sb.delete(0, sb.length()); String str20 = sb.toString(); // "!" + "!" -> "!!" (注意:这里的str20也是一个临时变量,不是str14)。// 因为sb指向的内容被改变了,所以str14的内容也发生了变化,但是由于我们没有重新创建新的StringBuilder对象,所以str14的内容并没有改变,这就是所谓的“深拷贝”,如果我们想要保留原来的内容不变,需要重新创建一个新的StringBuilder对象,sb.append("!"); sb.delete(0, sb.length()); String str21 = sb.toString(); // "!" + "!" -> "!!" (注意:这里的str21也是一个临时变量,不是str14)。// 因为sb指向的内容被改变了,所以str14的内容也发生了变
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/144991.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复