一、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等。对于不同的情况,可以选择不同的方法。当然,也可以自己编写分割字符串的方法。