1. 字符串分割
将字符串:A-B-C-D-E-F,通过“-”分割为(A, B, C, D, E, F)分别打印,通常会采用String类的
public String[] split(String regex)方法,或者其他外部包提供的Strings工具类的split静态方法。如com.okta.commons.lang.Strings,如下所示:
public class StringSplitDemo {
public static void main(String[] args) {
String str = "A-B-C-D-E-F";
String[] strs = str.split("-");
//String[] strs = Strings.split(str, "-");
for (String str1 : strs) {
System.out.println(str1);
}
}
}
这里介绍一种比split方法性能更好,代码实现更加优雅的方法,来自java.util的StringTokenizer类实现字符串的分割,StringTokenizer类的使用方法如下所示
StringTokenizer stringTokenizer = new StringTokenizer(str, "-");
while (stringTokenizer.hasMoreTokens()) {
System.out.println(stringTokenizer.nextToken());
}
StringTokenizer不仅在高并发场景下的性能表现要优于split方法,并且它还提供了其他灵活强大的功能。
//是否返回delim
StringTokenizer(String str, String delim, boolean returnDelims)
StringTokenizer(String str, String delim)
//采用默认的分隔符进行分割,如空格、Tab等
StringTokenizer(String str)
//判断是否有更多元素,用法类似于Iterator的hasNext()
boolean hasMoreTokens()
//返回下一个子字符串
String nextToken()
String nextToken(String delim)
//返回和hasMoreTokens()相同的结果,它的出现主要是StringTokenizer实现了Enumeration接口
boolean hasMoreElements()
//返回和nextTokens()相同的结果,它的出现主要是StringTokenizer实现了Enumeration接口
Object nextElement()
//记录个数
int countTokens()
2.字符串的拼接
关于字符串的拼接,可选的方法也比较多,如org.apache.commons.lang3包中提供的StringUtils类中提供了用于各种不同场景的25个join(,,)的重载方法,String类自身也提供了join方法,这里介绍一种来自于Guava的Joiner的用法。
网友评论