java如何截取分隔符
截取分隔符的方法
在Java中,截取字符串中的分隔符可以通过多种方式实现,具体取决于需求。以下是几种常见的方法:
使用 String.split() 方法
String.split() 方法可以根据指定的分隔符将字符串拆分为数组。例如:
String str = "apple,orange,banana";
String[] parts = str.split(","); // 使用逗号作为分隔符
for (String part : parts) {
System.out.println(part);
}
使用 StringTokenizer 类
StringTokenizer 是另一种分割字符串的方式,适合处理复杂的分隔符:
String str = "apple,orange|banana";
StringTokenizer tokenizer = new StringTokenizer(str, ",|");
while (tokenizer.hasMoreTokens()) {
System.out.println(tokenizer.nextToken());
}
使用正则表达式匹配分隔符
如果需要更灵活的分隔符匹配,可以使用正则表达式:
String str = "apple, orange; banana";
String[] parts = str.split("[,;]\\s*"); // 匹配逗号或分号,并忽略后面的空格
for (String part : parts) {
System.out.println(part);
}
使用 String.substring() 结合索引
如果分隔符的位置固定,可以直接截取子字符串:
String str = "apple-orange-banana";
int firstDash = str.indexOf("-");
int lastDash = str.lastIndexOf("-");
String firstPart = str.substring(0, firstDash);
String middlePart = str.substring(firstDash + 1, lastDash);
String lastPart = str.substring(lastDash + 1);
System.out.println(firstPart + ", " + middlePart + ", " + lastPart);
使用 Scanner 类
Scanner 可以按分隔符逐个读取字符串内容:

String str = "apple,orange,banana";
Scanner scanner = new Scanner(str).useDelimiter(",");
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
scanner.close();
注意事项
- 如果分隔符是正则表达式的特殊字符(如
.、|等),需要转义处理。例如split("\\.")。 - 空字符串处理需注意,
split()默认会忽略末尾的空字符串,但可以通过传入limit参数控制。 - 性能方面,
StringTokenizer比split()更快,但功能较简单。






