[英]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.