gpt4 book ai didi

android - 如何在android中将字符 `\n`替换为新行

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:48 24 4
gpt4 key购买 nike

我有一个 API 请求的服务器响应,如下所示。

Success! Your request has been sent.\n\nWe’ll inform you once it is done.

我需要在 Snackbar 中显示此消息。我需要添加新行来代替 \n在这个回应中。我尝试使用 replaceAll喜欢

String message = (serverResponse.getMessage()).replaceAll("\\n", System.getProperty("line.separator"));

但是它是这样显示的

enter image description here

如果我在 string.xml 中添加相同的消息资源文件并开始使用 getString(R.string.message)然后是 \n工作正常。我怎样才能从这个响应字符串中得到一个新行?

我尝试更改 \n与其他字符,如 <new_line>来自服务器响应,它与 replaceAll 一起工作正常.问题仅在于 \n在响应消息中。有没有办法解析\n

最佳答案

你需要的是

String message = serverResponse.getMessage().replaceAll("\\\\n", "\n");

为什么需要四个反斜杠?

因为在 Java 中反斜杠 \ 是转义字符。如果您想在 Java 字符串中使用单个反斜杠文字,您必须将其转义并使用 \\

但是,replaceAll 方法需要正则表达式,其中反斜杠也是转义字符,因此您也需要转义它。

基本上,在上面的代码中,Java 字符串解析器首先将这四个反斜杠转换为两个 \\\\->\\,然后正则表达式解析器将剩余的两个反斜杠解释为单个反斜杠文字。

关于android - 如何在android中将字符 `\n`替换为新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34417581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com