在讲一个问题之前,先看一段小代码
String c="name\\nname";
Log.i("检测c",c);
Log.i("检测c",c.replace("\\n","\n"));
上述代码的打印结果是这样的:
07-22 21:25:04.981 25196-25196/com.yuzhiyun.chemistry I/检测c: name\nname
07-22 21:25:04.981 25196-25196/com.yuzhiyun.chemistry I/检测c: name
name
结论: \n具有换行效果,但是加一个\变成\\n ,转义字符\n就失效了,失去了换行效果。
现在我提出自己遇到的问题:
我在sqlite数据库中存储的数据带有\n,但是查询出来后显示到TextView里面却失去了换行效果,直接显示出来的\n
则进行处理。 \n 例:13.0250001取四位有效数字时,结果为13.03
这就惹火了,怎么会这样,这说明了数据库中提取出的数据中的\n被替换成\\n了, 所以我只需要再替换回来就可以正常显示了。解决代码如下:
String b=noChoiceExercise.getAnswer().replace("\\n","\n").replace("\\t","\t");
tvAnswer.setText(""+b);
但是我还是搞不明白为什么数据库中的\n会被什么神来之物给替换成\\n(\t同理),求路过的大神解释一二,让我解决了问题的同时,还能知道为什么我就稀里糊涂的解决了。