java如何分割字符
分割字符串的方法
在Java中,可以使用String类的split()方法来分割字符串。该方法基于正则表达式匹配进行分割,返回一个字符串数组。
语法示例:
String[] result = str.split(regex);
基本用法
使用简单分隔符(如逗号)分割字符串:
String str = "apple,banana,orange";
String[] fruits = str.split(",");
// 结果为 ["apple", "banana", "orange"]
限制分割次数
可以指定最大分割次数:
String str = "one:two:three:four";
String[] parts = str.split(":", 2);
// 结果为 ["one", "two:three:four"]
特殊字符处理
当分隔符是正则表达式中的特殊字符(如.、|等)时,需要进行转义:
String str = "192.168.1.1";
String[] octets = str.split("\\.");
// 结果为 ["192", "168", "1", "1"]
多分隔符情况
使用正则表达式实现多分隔符分割:
String str = "apple;banana,orange grape";
String[] fruits = str.split("[;,\\s]");
// 结果为 ["apple", "banana", "orange", "grape"]
去除空字符串
默认会保留空字符串,可以过滤掉:
String str = "one,,two,three";
String[] parts = str.split(",");
// 结果为 ["one", "", "two", "three"]
// 过滤空字符串
parts = str.split(",", -1); // 保留所有
parts = Arrays.stream(parts).filter(s -> !s.isEmpty()).toArray(String[]::new);
性能考虑
对于简单固定字符串分割,使用Pattern.compile()预编译正则表达式更高效:
Pattern pattern = Pattern.compile(",");
String[] parts = pattern.split("a,b,c");
字符串标记化
对于更复杂的分割需求,可以使用StringTokenizer类:

StringTokenizer tokenizer = new StringTokenizer("a,b,c", ",");
while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
}






