- 字符串创建和初始化:
创建字符串:String str = "Hello";
通过构造函数创建:String str = new String("Hello");
- 字符串长度和字符访问:
获取字符串长度:int length = str.length();
访问特定位置的字符:char ch = str.charAt(index);
- 字符串连接和合并:
String str1 = "Hello";
String str2 = "World";
String result = str1 + " " + str2; // 使用 + 运算符
String concatResult = str1.concat(" ").concat(str2); // 使用 concat 方法
- 子字符串提取:
获取子字符串:String substring = str.substring(startIndex, endIndex);
- 字符串分割:
使用 split()
方法根据特定的分隔符将字符串分割为子字符串。
String text = "Hello,World,How,Are,You";
String[] parts = text.split(",");
- 字符串替换和修改:
替换字符或字符串:String replaced = str.replace(oldChar, newChar);
或者 String replaced = str.replaceAll(regex, replacement);
- 字符串转换:
将字符串转换为大写或小写:String upper = str.toUpperCase();
或者 String lower = str.toLowerCase();
将其他类型转换为字符串:String str = String.valueOf(someValue);
- 去除空白字符:
去除字符串首尾空白字符:String trimmed = str.trim();
- 字符串比较:
比较字符串内容:使用 equals()
方法或 equalsIgnoreCase()
方法。
String str1 = "hello";
String str2 = "Hello";
boolean isEqual = str1.equals(str2); // 普通比较
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // 忽略大小写比较
- 格式化字符串:
使用 String.format()
进行格式化输出。
- 查找子字符串:
查找子字符串第一次出现的位置:int index = str.indexOf(substring);
从指定位置开始查找子字符串:int index = str.indexOf(substring, startIndex);
从右往左查找子字符串第一次出现的位置:int lastIndex = str.lastIndexOf(substring);
- 判断字符串是否包含某子字符串:
使用 contains()
方法:boolean contains = str.contains(substring);
- 字符串格式化:
使用 String.format()
进行字符串格式化,支持插入变量、指定宽度、精度等。
- StringBuilder 和 StringBuffer:
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" ");
sb.append("World");
String result = sb.toString();
- 正则表达式操作:
Java 中的 java.util.regex
包提供了对正则表达式的支持,可以用于字符串匹配、替换、提取等复杂操作。
- 字符串数组的处理:
Java 中的 String[]
可以使用 Arrays
类进行排序、搜索等操作。
- 字符数组与字符串的转换:
字符串转为字符数组:char[] charArray = str.toCharArray();
字符数组转为字符串:String newStr = new String(charArray);
- 字符与字符串的互相转换:
字符串转为基本类型或对象类型:使用对应的包装类进行转换,例如 Integer.parseInt()
、Double.parseDouble()
等。
字符转为字符串:String charToString = String.valueOf('a');
- Unicode 和字符编码:
Java 使用 Unicode 表示字符,可处理各种语言的字符。了解字符编码在字符串处理中的影响很重要,比如 UTF-8、UTF-16 等编码格式。
- StringTokenizer 类:
StringTokenizer
类可以帮助按指定的分隔符分割字符串,相比 split()
方法更灵活。
String text = "Apple,Orange,Mango,Banana";
StringTokenizer tokenizer = new StringTokenizer(text, ",");
while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
System.out.println(token);
}
// 输出结果:
// Apple
// Orange
// Mango
// Banana
- StringJoiner 类:
Java 8 引入了 StringJoiner
类,用于在字符串序列之间添加分隔符。
StringJoiner joiner = new StringJoiner(", ", "[", "]");
joiner.add("Apple").add("Orange").add("Mango");
String result = joiner.toString();
System.out.println(result); // 输出结果:[Apple, Orange, Mango]
- String 类的不可变性:
在 Java 中,String 类是不可变的,一旦创建就不能修改。每次对字符串进行修改都会创建一个新的字符串对象,这点需要特别注意。
- Apache Commons Lang 库:
Apache Commons Lang 库提供了许多字符串处理的实用工具方法,如 StringUtils
类中的各种操作方法。
- JDK 11 中的新特性:
JDK 11 引入了 String
类的新方法,比如 repeat(int count)
方法用于重复字符串、isBlank()
方法用于检查字符串是否为空白等。
- 性能考虑:
在处理大量字符串时,避免频繁的字符串拼接,考虑使用 StringBuilder
或 StringBuffer
类来提高性能。