我将经典XML用作我的两个应用程序的Web服务后端,一个用纯Android编写,另一个用Flutter(iOS)编写。内置了unescape()函数的Flutter版本在解密XML中隐藏的换行符方面没有问题。但是,由于拥有多年的历史,并且周围有成千上万的程序员和解决方案,因此我无法使用广泛可用的解决方案(如
)在应用中以文字显示新行str.replaceAll("\\r\\n", \r\n");
str.replaceAll("\\n", "\n");
而且,因为我正在获取字符串中的unicode,所以我也尝试过这样做以在HTML中显示
str.replace("\r\n", "<br />");
str.replace(" ", " ");
txtView.setText(Html.fromHtml(str));
这些工作都没有,而我对此问题困扰了一段时间。这里有什么专家可以帮助我吗?
答案 0 :(得分:0)
我在URL下面发现了另一个类似您的问题
replace `\\r` with `\r` in string
使用replaceAll,您将必须使用.replaceAll(“ \\ r”,“ \ r”);因为
要在正则表达式中表示\,您需要对其进行转义,因此您需要使用pass \来正则表达式引擎。
但是要为单个\创建字符串文字,则需要将其写为“ \”。
更清晰的方法是使用replace(“ \ r”,“ \ r”);它将自动转义所有正则表达式元字符。
答案 1 :(得分:0)
在没有unicode解码的直接Web服务上工作之后,我能够在正则表达式中读取新行
(\\s{2})
这基本上意味着新行将以两个空格的形式到达。当然,执行以下操作可以解决我的问题
str.replaceAll("(\\s{2})", "\n\n");
用于纯ASCII / UTF-8文本,以下用于Unicode用于世界语言
str.replaceAll("(\\s{2])", "<br /><br />");
这不是最好的解决方案,但是已经解决了我的问题。