在 Android 中如何在字符串中插入新行

我正在创建一个 Android 应用程序,在它里面有一个按钮,可以在电子邮件中发送一些信息,我不想把所有的东西都放在一个段落中。

下面是我的应用程序为 putPlus 为电子邮件正文所做的工作:

I am the first part of the info being emailed. I am the second part. I am the third part.

我想让它这么做:

I am the first part of the info being emailed.
I am the second part.


I am the third part.

如何将一个新的行放入字符串或使用 putExtra方法来实现这一点?

167323 次浏览

尝试使用 System.getProperty("line.separator")获得一条新线路。

试试:

String str = "my string \n my other string";

当打印出来时,你会得到:

my string
my other string

我个人比较喜欢使用“ N”,这只是在 Linux 或 Android 中加了一个换行符。

比如说,

String str = "I am the first part of the info being emailed.\nI am the second part.\n\nI am the third part.";

输出

I am the first part of the info being emailed.
I am the second part.


I am the third part.

一种更通用的方法是,

System.getProperty("line.separator")

比如说,

String str = "I am the first part of the info being emailed." + System.getProperty("line.separator") + "I am the second part." + System.getProperty("line.separator") + System.getProperty("line.separator") + "I am the third part.";

带来与上述相同的输出。在这里,可以使用 System类的静态 getProperty()方法为特定操作系统获取“ line.seperator”。

但是这完全没有必要,因为这里的操作系统是固定的,即 仿生人。因此,每次调用方法都是 繁重和不必要的操作

此外,这也增加了您的代码长度,使它看起来有点凌乱

我在 CDATA标签中使用 <br>。 例如,我的 strings.xml 文件包含如下项:

<item><![CDATA[<b>My name is John</b><br>Nice to meet you]]></item>

还有指纹

My name is John
Nice to meet you

如果你想在运行时将换行符添加到一个字符串中,你需要从同一个字符串中得到这个值,那么这段 Kotlin 代码对我来说是可行的:

str = "<br>"+str?.replace("," , "</br><br>")+"</br>"
value = HtmlCompat.fromHtml(${skill_et_1}",Html.FROM_HTML_MODE_LEGACY)
tv.text = value