guava的String之Splitter

来源:互联网 发布:c 接ctp的源码示例 编辑:程序博客网 时间:2024/05/18 03:14

1.常用方法

摘自官网的部分常用方法说明。

Base Factories

MethodDescriptionExampleSplitter.on(char)Split on occurrences of a specific, individual character.Splitter.on(';')Splitter.on(CharMatcher)Split on occurrences of any character in some category.Splitter.on(CharMatcher.BREAKING_WHITESPACE)
Splitter.on(CharMatcher.anyOf(";,."))Splitter.on(String)Split on a literal String.Splitter.on(", ")Splitter.on(Pattern)
Splitter.onPattern(String)Split on a regular expression.Splitter.onPattern("\r?\n")Splitter.fixedLength(int)Splits strings into substrings of the specified fixed length. The last piece can be smaller than length, but will never be empty.Splitter.fixedLength(3)

Modifiers

MethodDescriptionExampleomitEmptyStrings()Automatically omits empty strings from the result.Splitter.on(',').omitEmptyStrings().
split("a,,c,d")
 returns "a", "c", "d"trimResults()Trims whitespace from the results; equivalent totrimResults(CharMatcher.WHITESPACE).Splitter.on(',').trimResults().split
("a, b, c, d")
 returns "a", "b", "c", "d"trimResults(CharMatcher)Trims characters matching the specified CharMatcher from results.Splitter.on(',').trimResults
(CharMatcher.is('_')).split("_a ,_b_ ,c__")
 returns "a ", "b_ ", "c".limit(int)Stops splitting after the specified number of strings have been returned.Splitter.on(',').limit(3).split
("a,b,c,d")
 returns "a", "b", "c,d"

2.实例

  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
package string;

import java.util.Map;


import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;

public class SplitterUse {

public static void useMethod() {
//根据分隔符进行分割
String sequence="a,,-b, c,-d";
Iterable<String> iterator1=Splitter.on(",").split(sequence);
System.out.println("根据分隔符进行分割:");
for(String str: iterator1)
System.out.println(str);
//去掉分割后空的字符串
Iterable<String> iterator2=Splitter.on(",").omitEmptyStrings().split(sequence);
System.out.println("去掉分割后空的字符串:");
for(String str: iterator2)
System.out.println(str);
//去掉分后后字符串中的空格
Iterable<String> iterator3=Splitter.on(",").omitEmptyStrings().trimResults().split(sequence);
System.out.println("去掉分后后字符串中的空格:");
for(String str: iterator3)
System.out.println(str);
Iterable<String> iterator5=Splitter.on(",").omitEmptyStrings().trimResults(CharMatcher.is('-')).split(sequence);
System.out.println("去掉分后后字符串中'-':");
for(String str: iterator5)
System.out.println(str);
//以固定长度进行分割
//Iterable<String> iterator4=Splitter.fixedLength(2).split(sequence);
Iterable<String> iterator4=Splitter.fixedLength(2).trimResults().split(sequence);
System.out.println("以固定长度进行分割:");
for(String str: iterator4)
System.out.println(str);
//Splitter将处理结果处理成map类型
Map<String,String> map=Splitter.on(";").omitEmptyStrings().withKeyValueSeparator(",").split("a,c;quzer,yuanrq; , ;hello,csdn");
System.out.println("Splitter将处理结果处理成map类型:");
for(Map.Entry<String, String> entry: map.entrySet())
System.out.println("key="+ entry.getKey()+";value="+entry.getValue());
}

public static void main(String[] args) {
useMethod();
}

}
 来自CODE的代码片
Splitter.java
运行结果:
根据分隔符进行分割:
a


-b
 c
-d
去掉分割后空的字符串:
a
-b
 c
-d
去掉分后后字符串中的空格:
a
-b
c
-d
去掉分后后字符串中'-':
a
b
 c
d
以固定长度进行分割:
a,
,-
b,
c
,-
d
Splitter将处理结果处理成map类型:
key=a;value=c
key=quzer;value=yuanrq
key= ;value= 
key=hello;value=csdn

原创粉丝点击