0

我有一个 SQLite 数据库,其中一些值包含带有换行符的'\n'字符串。我希望当从数据库中提取该值,放入 aString并且 aTextView设置setText()为该String值时,换行符会起作用,但不幸的是它不起作用。除了必须解析字符串并手动分解之外,还有其他选择吗?

4

2 回答 2

1

如果你调试,你会看到字符串实际上是“\ \r\ \n”或“\ \n”,即它被转义了。所以如果你按摩那个字符串,去掉多余的\,你就会有你的解决方案。如果您正在从数据库中读取数据,则尤其如此。

于 2012-08-29T00:39:30.990 回答
1

您的字符串在放入数据库时​​被转义。在将字符串放入 TextView 之前,您可以尝试通过调用 String s = unescape(stringFromDatabase) 来取消对字符串的转义。


private String unescape(String description) { return description.replaceAll("\\n", "\\n"); }

附带说明一下,在将数据插入数据库时​​,请确保对来自用户或未知可变源的任何类型的数据使用 DatabaseUtils.sqlEscapeString()。这将保护您免受错误和 SQL 注入的影响。

于 2013-02-22T06:58:35.003 回答