一、String.split()
String.split()是Java中最常用的字符串切割方法之一。这个方法的基本使用方法如下:
String str = "Hello,World"; String[] arr = str.split(",");
上面的代码中,我们以逗号为分隔符,将字符串“Hello,World”切割成了一个数组。通过split()方法,我们可以将一个字符串按照任何一个字符或是字符串进行切割。
不过,这个方法也有一些缺陷,其中最大的问题就是性能问题。在处理大量数据的时候,使用这个方法会极大的降低程序的运行速度。
二、StringTokenizer
StringTokenizer是Java中另一个常用的字符串切割方法。
与String.split()不同,StringTokenizer更为原始和低层。它将一个字符串按照指定的分隔符进行切割,然后将每个切割后的子串存储到一个Vector对象中。
以下代码是StringTokenizer的基本使用:
String str = "Hello,World"; StringTokenizer st = new StringTokenizer(str, ","); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); }
三、regex
在Java中,我们还可以使用正则表达式来对字符串进行切割。
以下代码是通过regex来进行字符串切割的基本演示:
String str = "Hello, world"; String regex = "\\s+"; //以至少一个空格为分隔符 String[] arr = str.split(regex); //{"Hello,", "world"}
正则表达式的优点在于,可以根据不同的需求自定义分隔符,更加灵活方便。
四、使用Apache Commons Lang3
Apache Commons Lang是Apache公司的一个开源工具包,提供了许多方便和实用的类。
其中,Lang3中的StringUtils类提供了split()方法,用于对字符串进行切割。
以下是使用StringUtils.split()方法的一段代码:
import org.apache.commons.lang3.StringUtils; String str = "Hi there"; String[] arr = StringUtils.split(str); // {"Hi", "there"}
需要注意的是,如果不指定分隔符,StringUtils.split()会默认使用空格或者制表符作为分隔符。
五、使用基于CharSequence的分隔符
除去以上的几种方法之外,在Java 8中,我们还可以使用基于CharSequence的分隔符进行字符串切割。
以下是使用基于CharSequence的分隔符进行字符串切割的一段代码:
String str = "This,is,a,comma,separated,string."; String delimiter = ","; String[] arr = str.split(Pattern.quote(delimiter));
相比较其他方法,基于CharSequence的分隔符更加灵活和方便,可以根据具体需求进行分隔符的选择。
六、小结
本文介绍了Java中常用的几种字符串切割方法,包括String.split()、StringTokenizer、regex、Apache Commons Lang3和基于CharSequence的分隔符。
如果需要对字符串进行切割,不同的需求可以使用不同的方法,达到更好的效果。
需要注意的是,在处理大量数据的时候,应该选择性能更好的方法,以提升程序的运行效率。