您的位置:

Java字符串分割实用技巧和案例

一、split方法的使用

Java中字符串分割最常用的方式就是使用String类的split()方法。该方法需要传入一个分隔符,返回以该分隔符分割的字符串数组。下面是split方法的使用示例:

String str = "apple,banana,orange";
String[] arr = str.split(",");
for(String s : arr) {
    System.out.println(s);
}

结果:

apple
banana
orange

上面代码中,将字符串"apple,banana,orange"按逗号分隔成了一个字符串数组。

二、正则表达式分割字符串

使用正则表达式也可以对字符串进行分割,根据正则表达式中的规则进行分割。例如,想将"apple5banana9orange4"分割成数字和非数字两个部分:

String str = "apple5banana9orange4";
String[] arr = str.split("\\d+"); //用\d表示数字,+表示匹配数字1个或多个
for(String s : arr) {
    System.out.println(s);
}

结果:

apple
banana
orange

上面代码中,使用\\d+表示匹配1个或多个数字,并用split方法对字符串进行分割。

三、StringTokenizer类的使用

StringTokenizer类也可以用来对字符串进行分割,该类提供了许多设置分隔符、返回分割后的子串等方法,使用比较灵活。下面是StringTokenizer类的使用示例:

String str = "apple,banana,orange";
StringTokenizer st = new StringTokenizer(str, ",");
while(st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}

结果:

apple
banana
orange

上面代码中,将字符串"apple,banana,orange"按逗号分隔成了一个字符串数组。

四、案例:读取文件中的数据

在读取文件时,有时需要将其中的数据进行分割处理。下面是一个读取文件并对每行数据进行分割的案例:

try {
    BufferedReader br = new BufferedReader(new FileReader("data.txt"));
    String str;
    while ((str = br.readLine()) != null) {
        String[] arr = str.split("\\s+"); //使用空白字符作为分隔符(包括空格、制表符和换行符)
        for(String s : arr) {
            System.out.print(s + ", ");
        }
        System.out.println();
    }
    br.close();
} catch (IOException e) {
    e.printStackTrace();
}

假设data.txt文件中的内容为:

1    2    3
4  5   6
7 8  9

上面代码中,使用BufferedReader读取文件内容,使用split("\\s+")对每行数据进行按空白字符分割。输出结果为:

1, 2, 3, 
4, 5, 6, 
7, 8, 9, 

五、总结

在Java中,字符串分割的方法有split、正则表达式、StringTokenizer等。对于不同的情况,可以选择不同的方法。当然,也可以自己编写分割字符串的方法。