Java StringJoiner类

时间:2020-01-09 10:34:53  来源:igfitidea点击:

在Java 8中,添加了新类StringJoiner,该类可用于使用指定的分隔符连接字符串。还有一个选项可以传递前缀和后缀,以将其添加到最终连接的String中。

另请参见:Java字符串join()方法和示例

Java StringJoiner类构造函数

  • StringJoiner(CharSequence delimiter)–构造一个不带字符,没有前缀或者后缀的StringJoiner,并复制提供的定界符。
  • StringJoiner(CharSequence定界符,CharSequence前缀,CharSequence后缀)–使用提供的前缀,定界符和后缀的副本构造一个不包含任何字符的StringJoiner。

Java StringJoiner示例

1.用冒号":"作为分隔符构造一个字符串。

public class JoinStrings {
  public static void main(String[] args) {
    // Specifying delimiter 
    StringJoiner sj = new StringJoiner(":");
    // adding values
    sj.add("Java");
    sj.add("Python");
    sj.add("Scala");
    System.out.println("Final String- " + sj.toString());
  }
}

输出:

Final String- Java:Python:Scala

2.用冒号" |"构造一个字符串作为分隔符," ["和"]"作为前缀和后缀。

public class JoinStrings {
  public static void main(String[] args) {
    // Specifying delimiter and prefix, suffix 
    StringJoiner sj = new StringJoiner("|", "[", "]");
    // adding values
    sj.add("Java");
    sj.add("Python");
    sj.add("Scala");
    System.out.println("Final String- " + sj.toString());
  }
}

输出:

Final String- [Java|Python|Scala]

Java StringJoiner方法

  • add(CharSequence newElement)–将给定CharSequence值的副本添加为StringJoiner值的下一个元素。
  • length()–返回此StringJoiner的String表示形式的长度。
  • merge(StringJoiner other)–如果给定的StringJoiner非空,则将其内容添加为下一个元素,不带前缀和后缀。
  • setEmptyValue(CharSequence emptyValue)-设置为空时用作默认字符的序列。
  • toString()–以字符串形式返回当前值

StringJoiner方法– setEmptyValue示例

public class JoinStrings {
  public static void main(String[] args) {
    // Specifying delimiter and prefix, suffix 
    StringJoiner sj = new StringJoiner("|", "[", "]");
    System.out.println("Final String- " + sj.toString());
    //Default String
    sj.setEmptyValue("Default String");
    System.out.println("Final String- " + sj.toString());
    // adding values
    sj.add("Java");
    sj.add("Python");
    sj.add("Scala");
    System.out.println("Final String- " + sj.toString());
  }
}

输出:

Final String- []
Final String- Default String
Final String- [Java|Python|Scala]

如我们所见,使用显示的setEmptyValue()方法添加默认字符串时。使用add()方法添加元素时,将显示这些值。

StringJoiner方法–合并示例

public class JoinStrings {
  public static void main(String[] args) {
    // Specifying delimiter and prefix, suffix 
    StringJoiner sj1 = new StringJoiner("|", "[", "]");
    StringJoiner sj2 = new StringJoiner("-", "(", ")");
    // adding values
    sj1.add("Java");
    sj1.add("Python");
    sj1.add("Scala");
    System.out.println("StringJoiner 1- " + sj1.toString());
    sj2.add("Golang");
    sj2.add("Kotlin");
    sj2.add("Clojure");
    System.out.println("StringJoiner 2- " + sj2.toString());
    // merging sj2 to sj1
    sj1.merge(sj2);
    System.out.println("Merged String- " + sj1.toString());
    System.out.println("Merged String length- " + sj1.length());
  }
}

输出:

StringJoiner 1- [Java|Python|Scala]
StringJoiner 2- (Golang-Kotlin-Clojure)
Merged String- [Java|Python|Scala|Golang-Kotlin-Clojure]
Merged String length- 41

合并StringJoiner对象时,如果另一个StringJoiner使用不同的分隔符,则来自另一个StringJoiner的元素将与该分隔符连接在一起。作为参数传递的StringJoiner对象的前缀和后缀将被丢弃,使用调用StringJoiner的定界符。