两万字详解Java String
1. String的常见操作
1.1 字符串拼接
Java中,我们可以使用加号+
或concat()
方法来进行字符串拼接。例如:
String str1 = "Hello";
String str2 = "World!";
String str3 = str1 + " " + str2;
String str4 = str1.concat(" ").concat(str2);
1.2 字符串截取
使用substring()
方法可以对字符串进行截取,例如:
String str = "Hello,World!";
String subStr1 = str.substring(0, 5);
String subStr2 = str.substring(7);
1.3 字符串查找
使用indexOf()
或lastIndexOf()
方法可以在字符串中查找指定字符或子字符串的位置,例如:
String str = "Hello,World!";
int index1 = str.indexOf(",");
int index2 = str.lastIndexOf("l");
1.4 字符串替换
使用replace()
方法可以对字符串中指定字符或子字符串进行替换,例如:
String str = "Hello,World!";
String newStr = str.replace(",", ".");
1.5 字符串分割
使用split()
方法可以将字符串按照指定的分隔符进行分割,并返回一个字符串数组,例如:
String str = "Hello,World!";
String[] strArr = str.split(",");
2. StringBuffer和StringBuilder的区别
在Java中,String类是不可变对象,每次对字符串进行修改时都会创建一个新的字符串对象,这样会导致不必要的内存开销。而StringBuffer和StringBuilder类是可变对象,它们可以对字符串进行修改而不会创建新的对象。
2.1 StringBuffer
StringBuffer是线程安全的,它的方法都被synchronized修饰,因此可以在多线程环境下使用,但是其性能比StringBuilder要差一些。例如:
StringBuffer sb = new StringBuffer();
sb.append("Hello");
sb.append(",");
sb.append("World!");
String str = sb.toString();
2.2 StringBuilder
StringBuilder是非线程安全的,其方法没有被synchronized修饰,因此不能在多线程环境下使用,但是其性能比StringBuffer要好一些。例如:
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(",");
sb.append("World!");
String str = sb.toString();
3. 示例说明
3.1 示例1
下面是一个示例程序,演示了如何使用String类的一些常见操作:
public class StringDemo {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "World!";
String str3 = str1 + " " + str2;
String str4 = str1.concat(" ").concat(str2);
System.out.println(str3);
System.out.println(str4);
String str = "Hello,World!";
String subStr1 = str.substring(0, 5);
String subStr2 = str.substring(7);
System.out.println(subStr1);
System.out.println(subStr2);
int index1 = str.indexOf(",");
int index2 = str.lastIndexOf("l");
System.out.println(index1);
System.out.println(index2);
String newStr = str.replace(",", ".");
System.out.println(newStr);
String[] strArr = str.split(",");
for (String s : strArr) {
System.out.println(s);
}
}
}
3.2 示例2
下面是一个示例程序,演示了如何使用StringBuilder类进行字符串拼接:
public class StringBuilderDemo {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(",");
sb.append("World!");
System.out.println(sb.toString());
}
}
4. 总结
在Java中,String类是常用的字符串类型,它提供了一些常见的字符串操作方法。当需要频繁地对字符串进行修改时,应该使用可变的对象,例如StringBuffer或StringBuilder。StringBuffer适用于多线程环境,而StringBuilder适用于单线程环境,两者的使用需要根据具体情况来选择。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:两万字详解Java Sring String的常见操作以及StringBuffer StringBuilder的区别 - Python技术站