Mar*_*328 13 java string concatenation append
所以我基本上需要这样做:
String text = "line1\n";
text += "line2\n";
text += "line3\n";
useString( text );
Run Code Online (Sandbox Code Playgroud)
涉及的更多,但这是基本的想法.有没有什么可以让我做更多的事情呢?
DesiredStringThinger text = new DesiredStringThinger();
text.append( "line1" );
text.append( "line2" );
text.append( "line3" );
useString( text.toString() );
Run Code Online (Sandbox Code Playgroud)
显然,它不需要像那样工作,但我认为我得到了基本的观点.总是可以选择编写一个循环来自己处理文本,但是如果有一个标准的Java类已经做了类似的事情而不是我需要在应用程序之间进行一个类就这样我就可以了.做一些如此微不足道的事情.
谢谢!
Joa*_*uer 15
你可以用一个StringWriter包裹在PrintWriter:
StringWriter stringWriter = new StringWriter();
PrintWriter writer = new PrintWriter(stringWriter, true);
writer.println("line1");
writer.println("line2");
writer.println("line3");
useString(stringWriter.toString());
Run Code Online (Sandbox Code Playgroud)
AFAIK没有允许您这样做的库类.
以下工作如下:
class DesiredStringThinger {
StringBuilder text = new StringBuilder();
public void append(String s) { text.append(s).append("\n"); }
@Override
public String toString() { return text.toString(); }
}
Run Code Online (Sandbox Code Playgroud)
对于 Java SE 8,可以通过以下几种其他方法:
String#joinStream。演示:
import java.util.Arrays;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
String[] arr = { "line1", "line2", "line3" };
// Using String#join
System.out.println(String.join(System.lineSeparator(), arr));
System.out.println();
// Using Stream
System.out.println(Arrays.stream(arr).collect(Collectors.joining(System.lineSeparator())));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
line1
line2
line3
line1
line2
line3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25849 次 |
| 最近记录: |