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的定界符。

