使用 {} 在 StringBuilder 数组中赋值
Assigning values in StringBuilder array using {}
我做不到:
StringBuilder[] textArray = new StringBuilder("Word1", "Word2", "Word3", "e.t.c");
我做错了吗?还是根本不可能?有没有更好的方法?
This is a link to StringBuilder javadoc
如您所见,没有带有可变参数的构造函数可以接受任意数量的字符串。您只能将一个字符串传递给构造函数。但下面的例子可能就是你想要的:
new StringBuilder("one string").append("second string").append("third")
但此示例将创建一个字符串生成器。如果要为每个字符串创建一个 StringBuilder,可以使用流。
Arrays.stream(new String[]{"one", "second", "third"})
.map(st -> new StringBuilder(st))
.toArray();
不过这个可以匹配刚开始学习的smbd Java.
这是我的做法。
StringBuilder[] textArray = Stream
.of("Word1", "Word2", "Word3")
.map(StringBuilder::new)
.toArray(StringBuilder[]::new);
如果你已经有一个字符串数组,你可以这样做。
String[] array = {"Word1", "Word2", "Word3"};
StringBuilder[] textArray = Arrays.stream(array)
.map(StringBuilder::new)
.toArray(StringBuilder[]::new);
无论哪种方式,它们打印的都是一样的。
for (StringBuilder sb : textArray) {
System.out.println(sb);
}
打印
Word1
Word2
Word3
要点是:
- 将字符串映射到
StringBuilder
对象
- 在
toArray
方法中指定数组类型
我做不到:
StringBuilder[] textArray = new StringBuilder("Word1", "Word2", "Word3", "e.t.c");
我做错了吗?还是根本不可能?有没有更好的方法?
This is a link to StringBuilder javadoc
如您所见,没有带有可变参数的构造函数可以接受任意数量的字符串。您只能将一个字符串传递给构造函数。但下面的例子可能就是你想要的:
new StringBuilder("one string").append("second string").append("third")
但此示例将创建一个字符串生成器。如果要为每个字符串创建一个 StringBuilder,可以使用流。
Arrays.stream(new String[]{"one", "second", "third"})
.map(st -> new StringBuilder(st))
.toArray();
不过这个可以匹配刚开始学习的smbd Java.
这是我的做法。
StringBuilder[] textArray = Stream
.of("Word1", "Word2", "Word3")
.map(StringBuilder::new)
.toArray(StringBuilder[]::new);
如果你已经有一个字符串数组,你可以这样做。
String[] array = {"Word1", "Word2", "Word3"};
StringBuilder[] textArray = Arrays.stream(array)
.map(StringBuilder::new)
.toArray(StringBuilder[]::new);
无论哪种方式,它们打印的都是一样的。
for (StringBuilder sb : textArray) {
System.out.println(sb);
}
打印
Word1
Word2
Word3
要点是:
- 将字符串映射到
StringBuilder
对象 - 在
toArray
方法中指定数组类型