Guava-Joiner类

引入

String字符串代码中出现的频率是相当高的,涉及字符串的知识点也是很多很多,比如String、StringBuilder、StringBuffer三者的区别,性能的比较,是否线程安全等等。 


用分隔符把字符串序列连接起来也可能会遇上不必要的麻烦。如果字符串序列中含有null,那连接操作会更难。Fluent风格的Joiner让连接字符串更简单。

方法

S.N.
方法及说明
1 A appendTo(A appendable, Iterable parts)
每个追加部分的字符串表示,使用每个之间先前配置的分离器,可用来追加。
2 A appendTo(A appendable, Iterator parts)
每个追加部分的字符串表示,使用每个之间先前配置的分离器,可用来追加。
3 A appendTo(A appendable, Object[] parts)
每个追加部分的字符串表示,使用每个之间先前配置的分离器,可用来追加。
4 A appendTo(A appendable, Object first, Object second, Object... rest)
追加到可追加的每个其余参数的字符串表示。
5 StringBuilder appendTo(StringBuilder builder, Iterable parts)
每个追加部分的字符串表示,使用每个之间先前配置的分离器,为构建者。
6 StringBuilder appendTo(StringBuilder builder, Iterator parts)
每个追加部分的字符串表示,使用每个之间先前配置的分离器,为构建者。
7 StringBuilder appendTo(StringBuilder builder, Object[] parts)
每个追加部分的字符串表示,使用每个之间先前配置的分离器,为构建者。
8 StringBuilder appendTo(StringBuilder builder, Object first, Object second, Object... rest)
追加到构建器的每个其余参数的字符串表示。
9 String join(Iterable parts)
返回一个包含每个部分的字符串表示,使用每个之间先前配置的分隔符的字符串。
10 String join(Iterator parts)
返回一个包含每个部分的字符串表示,使用每个之间先前配置的分隔符的字符串。
11 String join(Object[] parts)
返回一个包含每个部分的字符串表示,使用每个之间先前配置的分隔符的字符串。
12 String join(Object first, Object second, Object... rest)
返回一个包含每个参数的字符串表示,使用每个之间先前配置的分隔符的字符串。
13 static Joiner on(char separator)
返回一个加入者其连续元素之间自动地分隔符。
14 static Joiner on(String separator)
返回一个加入者其连续元素之间自动地分隔符。
15 Joiner skipNulls()
返回一个相同的行为,因为这加入者,除了自动跳过任何提供空元素的加入者。
16 Joiner useForNull(String nullText)
返回一个相同的行为,因为这一个加入者,除了自动替换nullText任何提供null元素。
17 Joiner.MapJoiner withKeyValueSeparator(String keyValueSeparator)
返回使用给定键值分离器MapJoiner,和相同的结构,否则为Joiner连接符 。


举列

1.连接List列表  

static Joiner on(char separator)
返回一个加入者其连续元素之间自动地分隔符。

public  void  Test2() {
     List list =  new  ArrayList();
     list.add( "你" );
     list.add( "们" );
     list.add( "好" );
     list.add( "吗" );
     System.out.println(Joiner.on( '!' ).join(list));
}

你!们!好!吗


2.连接Iterator列表 

String join(Iterable parts)
返回一个包含每个部分的字符串表示,使用每个之间先前配置的分隔符的字符串。

public  void  Test2() {
     List list =  new  ArrayList();
     list.add( "你" );
     list.add( "们" );
     list.add( "好" );
     list.add( "吗" );
     Iterator it =list.iterator();
     System.out.println(Joiner.on( '!' ).join(it));
}

你!们!好!吗


3.连接多个字符串

String join(Object first, Object second, Object... rest)
返回一个包含每个参数的字符串表示,使用每个之间先前配置的分隔符的字符串。

public  void  Test2() {
     System.out.println(Joiner.on( '!' ).join( "你" , "们" , "好" , "吗" ));
}

你!们!好!吗



4.连接字符串与列表

StringBuilder appendTo(StringBuilder builder, Object[] parts)
每个追加部分的字符串表示,使用每个之间先前配置的分离器,为构建者。

public  void  Test2() {
     List list =  new  ArrayList();
     list.add( "你" );
     list.add( "们" );
     list.add( "好" );
     list.add( "吗" );
     Iterator it =list.iterator();
     StringBuilder builder= new  StringBuilder( "主题" );
     System.out.println(Joiner.on( ',' ).appendTo(builder,list));
}


主题你,们,好,吗



5.跳过null值连接

Joiner skipNulls()
返回一个相同的行为,因为这加入者,除了自动跳过任何提供空元素的加入者。

public  void  Test2() {
     List list =  new  ArrayList();
     list.add( "你" );
     list.add( "们" );
     list.add( null );
     list.add( "好" );
     list.add( "吗" );
     Iterator it =list.iterator();
     StringBuilder builder= new  StringBuilder( "主题" );
     System.out.println(Joiner.on( ',' ).skipNulls().appendTo(builder,list));
}

主题你,们,好,吗


6.替换null值进行连接


Joiner useForNull(String nullText)
返回一个相同的行为,因为这一个加入者,除了自动替换nullText任何提供null元素。


public  void  Test2() {
     List list =  new  ArrayList();
     list.add( "你" );
     list.add( "们" );
     list.add( null );
     list.add( "好" );
     list.add( "吗" );
     Iterator it =list.iterator();
     StringBuilder builder= new  StringBuilder( "主题" );
     System.out.println(Joiner.on( ',' ).useForNull( "到底" ).appendTo(builder,list));
}

主题你,们,到底,好,吗


7.Joiner.MapJoiner withKeyValueSeparator(String keyValueSeparator)
返回使用给定键值分离器MapJoiner,和相同的结构,否则为Joiner连接符 。


public  void  Test2() {
     System.out.println( Joiner.on( "&" ).withKeyValueSeparator( "=" ).join(ImmutableMap.of( "id" "123" "name" "green" )));
}

id=123&name=green

你可能感兴趣的:(Guava)