我对API请求有一个服务器响应,如下所示。
Success! Your request has been sent.\n\nWe’ll inform you once it is done.
我需要在小吃栏中显示此消息。我需要\n
在此响应中添加新行。我试图通过使用replaceAll
像
String message = (serverResponse.getMessage()).replaceAll("\\n", System.getProperty("line.separator"));
但它显示像这样
如果我添加了string.xml
资源文件并开始使用,getString(R.string.message)
则会出现相同的消息,\n
则说明工作正常。如何从此响应字符串获取新行?
我尝试\n
使用
服务器响应中的其他字符进行更改,并且与可以正常使用replaceAll
。问题仅\n
在于响应消息。有什么解析的方法\n
吗?
您需要的是
String message = serverResponse.getMessage().replaceAll("\\\\n", "\n");
为什么需要四个反斜杠?
因为在Java中,反斜杠\
是转义字符。如果要在Java字符串中包含单个反斜杠文字,则必须对其进行转义并使用\\
但是,replaceAll
方法需要正则表达式,其中反斜杠也是转义字符,因此您也需要转义它。
基本上,在上面的代码中,Java字符串解析器将首先将这四个反斜杠转换为两个\\\\ -> \\
,然后正则表达式解析器会将其余两个反斜杠解释为单个反斜杠文字。