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