java - Android 如何修剪字符串中的多行?

标签 java android string kotlin text

您好,我们的应用程序需要一个格式化字符串。

预期输出:

Blow the candles real hard,
Coz now you have aged,
Don't pretend so much my dear,
Don't behave so sage,
Happy birthday to you,
Have a nice day,
Make the most of your day!

我想格式化一个字符串,如上所示,当我对字符串使用trim()函数时,它给出的结果为

Blow the candles real hard,
 Coz now you have aged,
Don't pretend so much my dear,
 Don't behave so sage,
 Happy birthday to you,
 Have a nice day,
Make the most of your day!  

我想删除每行开头的空格。我在下面使用了这些函数,它修剪了字符串的开头和结尾,但不修剪行。

   poemText = poemText.trimMargin()
   poemText = poemText.trimIndent()
   poemText = poemText.replace("\n ", "\n")
   for(line in poemText.lines())
   {line.trim()}

感谢任何帮助

最佳答案

您可以像这样使用正则表达式替换:

poemText = poemText.replace("""^\s*|\s*$""".toRegex(), "")
                   .replace("""\s*(\r|\n|\r\n)\s*""".toRegex(), "\n")  

Code example

第一个替换将删除文本开头和结尾的所有空格,第二个替换将删除每行结尾和开头的空格。

关于java - Android 如何修剪字符串中的多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65563068/

相关文章:

android - Android中RelativeLayout中防止Scrollview与其他 View 重叠

android - ActionBar Sherlock Progressbar 不显示在 3.1 但在 4.0+

java - 为什么静态 block 不加载到被调用的对象中?

java - 如何在 strings.xml 中输入字符 "<"?

android - 如何将 OPEN_APP_FEATURE 操作集成到 Android 应用程序中?

字符串预处理步骤,在 O(1) 时间内回答进一步的查询

java - 根据空格在 java 中拆分一个字符串,用双引号和单引号转义那些空格,前面是\

java - Java实践中修改字符串

java - Spring 启动/Tomcat : HTTP -> HTTPS 301 Redirects

java - 在引号上划分/拆分字符串