我有一个 API 请求的服务器响应,如下所示。
Success! Your request has been sent.\n\nWe’ll inform you once it is done.
我需要在 Snackbar 中显示此消息。我需要添加新行来代替\n
在此回应中。我尝试使用replaceAll
like
String message = (serverResponse.getMessage()).replaceAll("\\n", System.getProperty("line.separator"));
但它是这样显示的
如果我添加的话,也会出现同样的消息string.xml
资源文件并开始使用getString(R.string.message)
那么\n
工作正常。如何从此响应字符串中获取新行?
我尝试改变\n
与其他角色如<new_line>
从服务器响应来看,它工作正常replaceAll
。问题仅在于\n
在响应消息中。有没有什么办法可以解析\n
?
你需要的是
String message = serverResponse.getMessage().replaceAll("\\\\n", "\n");
为什么需要四个反斜杠?
因为在Java中反斜杠\
是转义字符。如果你想在 Java 字符串中使用单个反斜杠文字,你必须将其转义并使用\\
But, replaceAll
方法需要正则表达式,其中反斜杠也是转义字符,因此您也需要对其进行转义。
基本上,在上面的代码中,Java 字符串解析器首先将这四个反斜杠转换为两个\\\\ -> \\
然后正则表达式解析器会将剩余的两个反斜杠解释为单个反斜杠文字。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)