【发布时间】:2013-03-29 20:32:38
【问题描述】:
我想要做的是获取一段大字符串。我曾尝试使用 indexOf(),但在重复文本时完全失败。我的最终目标是让用户能够在 JTextPane 中选择文本并仅对那部分文本进行样式化。我已经获得了与 StyledDocuments 一起使用的样式,我什至已经让它只为用户选择的文本设置样式,但这是我的问题。
让我们这么说
String alltext = "敏捷的棕狐跳过了懒狗";
而用户突出显示的是String selectedtext
在这种情况下,让我们说
String selectedtext = "棕色";
我的目标是获取所选文本的偏移量和长度。对于这个特定的句子,我可以简单地这样做:
int offset = alltext.indexOf(selectedtext);
int length = selectedtext.length();
这会很好。但是如果:
alltext = brownbrownbrownbrown;
用户突出显示第三个棕色。如果我像以前一样做同样的事情,程序只会选择第一个棕色而不是真正的棕色,它会为第一个设置样式。
有没有什么办法可以解决这个问题,或者从一个大块中获取一段字符串的位置?
谢谢!
【问题讨论】:
-
有几个问题我认为相关的两个答案(在Careers 2.0 Icon下)
-
为什么您将选择作为字符串进行跟踪,而不是像通常那样直接作为索引/偏移量? JTextPane 应该自动执行此操作。或者,换种说法:如果由于某种原因您只能确定用户正在查找的字符串,则无法知道它是哪一个。
-
如何从 JTextPane 中获取索引值?有没有适合你的方法?
-
谢谢,getSelectionStart() 似乎成功了。
标签: java string swing jtextpane indexof