问题标签 [java-text-blocks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
41 浏览

java - 在格式化文本块中注入多行字符串时如何对所有行应用缩进

我开始使用便于阅读的 Java 15 文本块。现在我想格式化文本块并在其中注入字符串,据我所知,现在执行此操作的惯用方法是使用String::formatted。但是在注入多行字符串时,似乎文本块中的源代码缩进有点受限。

例如,以下程序:

正如预期的那样,打印两行而没有任何缩进:

然而,这个:

打印以下内容:

而我有点希望得到以下内容:

我确实意识到这个问题与我的第二个程序中的文本块这一事实无关text,它也可能是带有换行符的传统字符串文字,\n结果是一样的。包装文本块显然只将缩进应用于注入的多行字符串的第一行,这是可以理解的,因为它可能只是在缩进之后附加注入的字符串。

所以我想我的问题是:有没有一种干净的方法可以将包装文本块中指定的缩进应用于注入字符串的所有行?

我知道我可以做一些类似.formatted(text.replaceAll("\n", "\n\t"))格式化文本块的事情,但这很笨拙,对行终止顺序做出假设,并且违背了在一个地方指定缩进的目的,因为如果我想更新缩进,我需要在文本块和替换字符串中执行此操作。

0 投票
1 回答
43 浏览

java - Java 文本块缩进和前导空格

给定以下代码

输出如下(注意前导空格):

如何获得如下所示的字符串值(没有不必要的前导空格)?