[英]Reading a new line in a string with \n
构建字符串时,可以像这样创建换行符:
"This is the first line \n\n And this is the second line";
因此,当运行这部分代码时,所有代码都可以在Android模拟器上正常运行:
TextView newsTextArea = (TextView) view.findViewById(R.id.newsTextView);
newsTextArea.setText("Hello \n\n Whats up");
但是,我已经从创建的Web服务下载并解析了JSON,并且将所需的内容存储在这样的变量中:
GlobalSettings globalSettings = new GlobalSettings();
String newsText = globalSettings.getNews();
因此变量newsText
等于一个字符串,为了便于说明,这里可以说是"Hello, this has two lines. \\n\\n Welcome to the test"
。
当我像这样运行上面的TextView
代码时,它以\\n\\n
作为文字字符输出。
newsTextArea.setText(newsText);
如何使变量newsText
保持格式?
我是一个很好的猜测者..大声笑我可能有太多原因
1. newsTextArea.setSingleLine(false);
2. newsTextArea.setMinLines(2); or newsTextArea.setMaxLines(50);//any figure
3. String newsText = globalSettings.getNews().replace("\\\n", System.getProperty("line.separator"));
4. String newsText = globalSettings.getNews().toString();
玩这些方法,看看有没有一个适合你,或者两个都笑了
但是,我已经从我们创建的Web服务下载并解析了JSON ...
您的JSON WS有很大的机会返回文化序列\\n
作为其输出。 不是您期望的换行字符 ( <LF>
)。
此时,您可能有两个选择:
\\
会突然出现在您的数据中)。 也许是时候发布另一个有关您的JSON Web服务的问题了吗?
无论文本最初来自何处,反斜杠都有可能被转义。 例如,它可能来自您服务中的硬编码常量,然后由人工输入到表单中然后经过验证等。
在解析之前,请以原始格式查看JSON。 JSON规范说,单个反斜杠后跟n表示换行符。 如果看起来像["Hello, this has two lines. \\n\\n Welcome to the test"]
那么您应该很好,因为JSON解析器应该正确解释换行符。 但是,如果看起来像这样: ["Hello, this has two lines. \\\\n\\\\n Welcome to the test"]
,则转义了反斜杠字符,而不是n。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.