有没有一种简单的方法可以将几行文本连接成一个字符串,而无需不断附加换行符?

2022-09-03 04:17:54

所以我基本上需要这样做:

String text = "line1\n";
text += "line2\n";
text += "line3\n";
useString( text );

涉及更多,但这是基本思想。有没有什么可以让我在这方面做更多的事情?

DesiredStringThinger text = new DesiredStringThinger();
text.append( "line1" );
text.append( "line2" );
text.append( "line3" );
useString( text.toString() );

显然,它不需要完全像那样工作,但我认为我明白了基本观点。总有一种选择是编写一个自己处理文本的循环,但是如果有一个标准的Java类已经执行了类似的事情,而不是我需要在应用程序之间携带一个类,这样我就可以做一些微不足道的事情,那就太好了。

谢谢!


答案 1

您可以使用包装在打印Writer中的StringWriter

StringWriter stringWriter = new StringWriter();
PrintWriter writer = new PrintWriter(stringWriter, true);
writer.println("line1");
writer.println("line2");
writer.println("line3");
useString(stringWriter.toString());

答案 2

AFAIK 没有库类允许您这样做。

不过,以下方法可以完成工作:

class DesiredStringThinger {
  StringBuilder text = new StringBuilder();

  public void append(String s) { text.append(s).append("\n"); }

  @Override
  public String toString() { return text.toString(); }
}