我正在使用一个JTextPane对象,假设它的名字是 jtp ,所以我可以用斜体或粗体显示一些有点短的字符串的部分。我有一个字符串,我们将它命名为 otxt ,它有一个换行符。鉴于我使用Windows,它意味着\ r \ n,它是使用
创建的System.getProperty("line.separator")
并在完全形成之前消除所有疑虑,我将我的String转换为char数组,走过char数组并在Eclipse控制台中使用隐式转换通过转换到 int 是的,只有一个代码13,代表\ r和只有一个代码10,代表\ n。现在,如果我使用
jtp.setText(otxt);
一切顺利 - 我从
转换为char数组jtp.getText()
并打印出所有字符的代码,我只有一个代码13(\ r)和一个代码10(\ n),因为我应该有。但我需要在斜体或粗体中显示 otxt 的某些部分,所以我必须使用
jtp.insertString(0 /*offset*/, otxt, attributeSet /*italic, bold or whatever stylistic property*/)
这是一个大问题:这会创建\ r \ n \ n \ n \ n \ n我应该有\ r \ n。这是使用相同的过程确认的:1)从jtp.getText()到char数组的字符串; 2)走阵; 3)打印字符代码;我看到代码13(\ r)两次和代码10(\ n)一次。帮我解决这个问题。希望你能找到有趣的问题。
答案 0 :(得分:5)
Document
类仅在文档中存储"\n"
。所以你不应该试图插入" \ r"字符indo the Document。
如果您想为Document
添加换行符,只需插入"\n"
。
当您使用文本组件的getText()
时,该方法将替换" \ n"文档中的字符,包含当前平台的换行符。
因此,对于Windows," \ n"将替换为" \ r \ n"对你而言。
查看Text and New Lines以获取有关此主题的更多信息。