Java字符串分割为数组
在Java中,可以使用String.split()方法将字符串分割为字符串数组,以下是详细说明和示例:

基本用法
String str = "apple,banana,orange";
String[] fruits = str.split(",");
这将返回一个包含["apple", "banana", "orange"]的数组。
方法签名
public String[] split(String regex)
regex: 分割字符串的正则表达式
常用示例
简单分割(使用逗号分隔)
String csv = "John,Doe,30";
String[] parts = csv.split(",");
// 结果: ["John", "Doe", "30"]
使用正则表达式
String text = "apple banana orange";
String[] words = text.split("\\s+"); // 一个或多个空白字符
// 结果: ["apple", "banana", "orange"]
限制分割次数
String path = "/home/user/documents/file.txt";
String[] parts = path.split("/", 3);
// 结果: ["", "home/user", "documents/file.txt"]
处理特殊字符
如果分割字符是正则表达式中的特殊字符(如, , 等),需要转义:
String regexStr = "a.b|c*d";
String[] parts = regexStr.split("\\.|\\*");
// 结果: ["a", "b", "c", "d"]
分割后去除空字符串
String str = "a,,b,c,,";
String[] parts = str.split(",");
// 结果: ["a", "", "b", "c", "", ""]
// 去除空字符串
List<String> nonEmpty = Arrays.asList(parts).stream()
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());
// 结果: ["a", "b", "c"]
注意事项
-
性能考虑:对于大量数据,多次调用
split()可能影响性能,考虑使用Pattern和Matcher类。 -
正则表达式:
split()方法接受正则表达式,不是普通字符串。
(图片来源网络,侵删) -
空字符串:如果字符串以分隔符开头或结尾,结果数组会包含空字符串。
-
转义字符:如果分割字符是正则表达式中的特殊字符,需要使用
\\进行转义。
替代方法
对于更复杂的分割需求,可以使用java.util.regex.Pattern:
import java.util.regex.Pattern;
String str = "apple, banana; orange|grape";
Pattern pattern = Pattern.compile("[,;|]\\s*");
String[] fruits = pattern.split(str);
// 结果: ["apple", "banana", "orange", "grape"]
希望这些信息对你有帮助!如果你有更具体的分割需求,可以进一步提问。

