在Java8中,将LinkedHashSet逐行附加到TextArea
我试图在Java8中将LinkedHashSet附加到textArea。下面的代码可以工作,但它不会逐行添加内容,而是将它们全部添加到一行中在Java8中,将LinkedHashSet逐行附加到TextArea,java,textarea,Java,Textarea,我试图在Java8中将LinkedHashSet附加到textArea。下面的代码可以工作,但它不会逐行添加内容,而是将它们全部添加到一行中 Code: textArea.setText(textArea.getText() + linkedHashSet); [ lin1, line2, line3, line4] 我希望将它们附加到下面列出的文本区域 line1 line2 line3 line4 由于这是Java 8,您可以使用: t
Code:
textArea.setText(textArea.getText() + linkedHashSet);
[ lin1, line2, line3, line4]
我希望将它们附加到下面列出的文本区域
line1
line2
line3
line4
由于这是Java 8,您可以使用:
textArea.setText( textArea.getText()
+ String.join( System.lineSeparator(), linkedHashSet ));
各种形式的String.join
,这一种让您可以使用分隔符(在本例中是行分隔符)将元素的字符串表示连接在一起
通常,如果您的Iterable
(set,list)包含元素“A”、“B”和“C”,并且您希望将它们与、
连接起来,您可以使用:
String.join( ",", myIterable );
这将给你:
A、B、C
如果第一个参数是---大分隔符---
,那么您将得到:
A--大分隔符--B--大分隔符--C
但是在我们的例子中,我们加入了System.lineSeparator()
,这意味着字符串将由\n
(在Linux机器上)或\r\n
(在Windows机器上)分隔。这意味着每个值将位于单独的行上:
A
B
C
您首先必须了解代码的实际功能。在此解释中,我假设lnkedHashSet是字符串对象的LinkedHashSet
非常感谢你的工作。但是你能给我几行解释一下String.Join中的代码吗。当然字符串。Join是显而易见的,但它如何与系统一起工作呢。lineSeparator@Moe我对答案作了解释。
StringBuilder sb = new StringBuilder;
for (String item : linkedHashSet) {
sb.append(item).append('\n');
}
textArea.setText(sb.toString());