Java中有多个类可以用于操作字符串,以下是比较常用的几个类:
- String 类: String 是一个 final 类,字符串是一个对象,一旦被创建,就不能被修改。因为Java中的String对象是可以共享的,所以每次对String进行修改时,都会创建一个新的String对象,影响了性能。
示例1:使用加号操作字符串,每次操作都会创建一个新的 String 对象。
String str = "hello";
str = str + " world";
System.out.println(str); //输出 "hello world"
示例2:使用 StringBuilder 类的 append 方法来修改字符串,StringBuilder 是一个可变的字符序列。这个方法将原始字符串保持不变,而是创建了一个新的字符串。
StringBuilder sb = new StringBuilder("hello");
sb.append(" world");
String str = sb.toString();
System.out.println(str); //输出 "hello world"
- StringBuffer: StringBuffer 与 StringBuilder 类似,也是一个可变的字符序列,唯一的区别在于 StringBuffer 是线程安全的,因此它的性能相比 StringBuilder 差,如果不需要线程安全,建议使用StringBuilder。
示例:
StringBuffer sbf = new StringBuffer("hello");
sbf.append(" world");
String str = sbf.toString();
System.out.println(str); //输出 "hello world"
- StringTokenizer: StringTokenizer 可以将一个字符串解析成多个不同的子字符串。如果要对一个字符串进行分割或者分割后统计数量,就可以使用它。
示例:
String str = "www.baidu.com";
StringTokenizer st = new StringTokenizer(str, ".");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
//输出:www
// baidu
// com
- Pattern 和 Matcher:Pattern 和 Matcher 是用于对正则表达式进行操作和匹配的类。可以对一个字符串进行查找、替换、分割等操作。
示例:
String str = "apple orange banana";
Pattern pattern = Pattern.compile(" ");
Matcher matcher = pattern.matcher(str);
String[] values = pattern.split(str);
while (matcher.find()) {
System.out.println(matcher.group());
}
for (String value : values) {
System.out.println(value);
}
//输出:
// " "
// apple
// orange
// banana
总之,每个类都有其各自的特点和适用场景,在实际使用时需要仔细考虑选择合适的类来操作字符串,以达到最佳的性能效果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java有哪些操作字符串的类?区别在哪? - Python技术站