Guava-Joiner类

引入

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


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

方法

S.N.
方法及说明
1 <A extends Appendable> A appendTo(A appendable, Iterable<?> parts)
每个追加部分的字符串表示,使用每个之间先前配置的分离器,可用来追加。
2 <A extends Appendable> A appendTo(A appendable, Iterator<?> parts)
每个追加部分的字符串表示,使用每个之间先前配置的分离器,可用来追加。
3 <A extends Appendable> A appendTo(A appendable, Object[] parts)
每个追加部分的字符串表示,使用每个之间先前配置的分离器,可用来追加。
4 <A extends Appendable> 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<String> list =  new  ArrayList<String>();
     list.add( "你" );
     list.add( "们" );
     list.add( "好" );
     list.add( "吗" );
     System.out.println(Joiner.on( '!' ).join(list));
}

你!们!好!吗


2.连接Iterator<T>列表 

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

public  void  Test2() {
     List<String> list =  new  ArrayList<String>();
     list.add( "你" );
     list.add( "们" );
     list.add( "好" );
     list.add( "吗" );
     Iterator<String> 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<String> list =  new  ArrayList<String>();
     list.add( "你" );
     list.add( "们" );
     list.add( "好" );
     list.add( "吗" );
     Iterator<String> it =list.iterator();
     StringBuilder builder= new  StringBuilder( "主题" );
     System.out.println(Joiner.on( ',' ).appendTo(builder,list));
}


主题你,们,好,吗



5.跳过null值连接

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

public  void  Test2() {
     List<String> list =  new  ArrayList<String>();
     list.add( "你" );
     list.add( "们" );
     list.add( null );
     list.add( "好" );
     list.add( "吗" );
     Iterator<String> 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<String> list =  new  ArrayList<String>();
     list.add( "你" );
     list.add( "们" );
     list.add( null );
     list.add( "好" );
     list.add( "吗" );
     Iterator<String> 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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值