开源项目

知识点

相关文章

更多

最近更新

更多

Guava字符串连接-Joiner类

2019-04-23 23:10|来源: 网路

Joiner 提供了各种方法来处理字符串加入操作,对象等。

类声明

以下是com.google.common.base.Joiner类的声明:

@GwtCompatible
public class Joiner
   extends Object

类方法

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连接符 。

继承的方法

这个类继承了以下类方法:

  • java.lang.Object

Joiner 示例

使用所选择的编辑器创建下面的java程序 C:/> Guava

GuavaTester.java

import java.util.Arrays;
import com.google.common.base.Joiner;

public class GuavaTester {
   public static void main(String args[]){
      GuavaTester tester = new GuavaTester();
      tester.testJoiner();	
   }

   private void testJoiner(){
      System.out.println(Joiner.on(",")
         .skipNulls()
         .join(Arrays.asList(1,2,3,4,5,null,6)));
   }
}

验证输出结果

使用javac编译器编译如下类

C:\Guava>javac GuavaTester.java

现在运行GuavaTester看到的结果

C:\Guava>java GuavaTester

看看结果:

1,2,3,4,5,6


相关问答

更多
  • 只是输出效果的话,没必要strcat,不要用puts,改printf,格式不换行就可以 要用strcat,需要再定义一个b,先strcpy b a 执行fun后,再strcat b a
  • 循环对我来说似乎很好。 那说,你可以这样做: // implementation is simple enough public static Function, String> joinFunction(Joiner joiner) { ... } String string = Joiner.on('\n').join( Iterables.transform(matrix, joinFunction(Joiner.on(", ")))); 你在那里失去了一些效率,因 ...
  • 您不会比Java 8流API更简洁,因为它存在的原因是改进这些操作。 使用Guava的功能实用程序可以对Java 8之前的函数式编程进行评判,但正如他们警告的那样 : 从Java 7开始,Java中的函数式编程只能通过匿名类的笨拙和冗长的使用来近似。 过度使用Guava的函数式编程习惯可能导致冗长,混乱,难以理解和低效的代码....命令式代码应该是您的默认设置 ,是Java 7的首选 。 这是您的代码的必要翻译: private static final Joiner COMMA_JOINER = Join ...
  • 简单的+运算符是最快的,因为您可以使用一些循环和大量迭代快速对自己进行基准测试。 请参阅下面的快速示例,其中(在我的机器上)+操作符约为7秒,而strfmt约为10秒。 正如Guido Preite已经指出的那样,为了最好的可读性而写它,但通常在AX中使用strfmt来构建面向用户的字符串(例如通过语言)。 static void StrConcatPerf(Args _args) { int i; int startTime; int endTime; str conca ...
  • 找到解决方案,只需从String中替换Zero-Width Non-Joiner实体即可。 $str=str_replace('‌','',$str); **OR** $str=str_replace('‌','',$str; found Solution , Just replace Zero-Width Non-Joiner entity from String and it will works. $str=str_replace('‌',' ...
  • ++看起来像增量运算符。 它实际上是两个一元+运算符,所以它和普通的旧counter ++ just looks like the increment operator. It's actually two unary + operators, so it's just the same as plain old counter
  • ComparisonChain每个compare方法返回一个ComparisonChain ,它不一定是调用比较的链。 第一个片段不会忽略结果(因此是正确的),但第二个片段忽略结果,因此不正确。 如果确实如此,那将是正确的: comparisionChain = comparisionChain.compare(...).compare(...); 有关源代码,请参阅http://docs.guava-libraries.googlecode.com/git-history/v10.0.1/javadoc ...
  • 这个. 运算符是连接运算符。 您的第一个示例仅适用于echo函数(技术上它是一种语言结构,但不允许分割头发)接受多个参数,并且会打印每个参数。 因此,第一个示例是使用多个参数调用echo,并且它们都被打印出来,而第二个示例中所有字符串都是concatenate的,并且正在打印一个大字符串。 The . operator is the concatenation operator. Your first example only works because the echo 'function' (techn ...
  • 你不需要循环,你可以用Guava做以下事情: // trim the elements: List trimmed = Lists.transform(list, new Function() { @Override public String apply(String in) { return in.trim(); } }); // join them: String joined = Joiner.on("").jo ...
  • 斜线正在逃避报价。 基本上它会在括号内的引号中写出名称。 对于您的示例,输出将是: items["Wilson"] = Wilson
    在反斜杠\之后直接对字符进行转义。 所以\"逃脱到了" 。 以下"正在停止字符串,您将附加s变量,而s变量又是foreach循环中的当前项。 这是一篇关于转义字符的文章 。 The slash is escaping the quote. Basically it is going to write the name in quotes inside brack ...