首页 > IT职业 > IT职场 > Google Guava之字符串连接与分割
返回值为
String。执行join()之前,必须使用on()设置分隔符。parts支持Iterable、Iterato、Object[]以及不常用的String型不定参。
代码清单1——数组
String[] numberArray = new String[] { "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine",
"Ten" };
String numbers = Joiner.on(";").join(numberArray);
System.out.println(numbers);
//输出:One;Two;Three;Four;Five;Six;Seven;Eight;Nine;Ten 代码清单2——Iterable
Iterable numberIter = Splitter.on(",").split("One,Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten");
String numbers = Joiner.on(";").join(numberIter);
System.out.println(numbers);
//输出:One;Two;Three;Four;Five;Six;Seven;Eight;Nine;Ten 代码清单3——String不定参
String numbers = Joiner.on(";").join("One", "Two", "Three", "Four");
System.out.println(numbers);
//输出:One;Two;Three;Four 代码清单4——Iterator
String[] numberArray = new String[] { "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine",
"Ten" };
Iterator iterators = Arrays.asList(numberArray).iterator();
String numbers = Joiner.on(";").join(iterators);
System.out.println(numbers);
//输出 One;Two;Three;Four;Five;Six;Seven;Eight;Nine;Ten 使用
skipNulls(),可以忽略null值。避免parts中有null值时,抛出NPE异常。
代码清单5
String numbers = Joiner.on(";").join("One","Two","Three",null,"Five");
System.out.println(numbers);
// 抛出异常 java.lang.NullPointerException 代码清单6
String numbers = Joiner.on(";").skipNulls().join("One","Two","Three",null,"Five");
System.out.println(numbers);
//输出:One;Two;Three;Five 使用
useForNull(),可以将part中的null值替换为指定字符。
代码清单7
String numbers = Joiner.on(";").useForNull("NULL").join("One", "Two", "Three", null, "Five");
System.out.println(numbers);
//输出:One;Two;Three;NULL;Five 返回值为
Iterable。执行split()前,必须使用on()设置分隔符。
从代码清单8的输出结果可以看出,分割结果并未过滤掉空字符串。
代码清单8
String numberList = "One,Two,Three,Four,Five,,Six,Seven,Eight,Nine,Ten,";
Iterable split = Splitter.on(",").split(numberList);
for (String str : split) {
System.out.print(str + ";");
}
//输出:One;Two;Three;Four;Five;;Six;Seven;Eight;Nine;Ten;; 通过使用
omitEmptyStrings(),设置Splitter过滤掉length=0的空字符串
代码清单9
String numberList = "One,Two,Three,Four,Five,,Six,Seven,Eight,Nine,Ten,";
Iterable split = Splitter.on(",").omitEmptyStrings().split(numberList);
for (String str : split) {
System.out.print(str + ";");
}
//输出One;Two;Three;Four;Five;Six;Seven;Eight;Nine;Ten; 常用字符串分割方法或工具类有:
测试代码
/**
* 使用JDK自带方法
*/
public void splitByJdk() {
String numberList = "One,Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten";
long start = System.currentTimeMillis();
for (int i = 0; i 测试结果

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/835/viewspace-2798408/ ,如需转载,请注明出处,否则将追究法律责任。