例如,有一个JTextPane有一些文本,如“123456abcd789”,插入符号现在在'7'之间。
请参阅此说明: “123456abcd | 789”。这里的'|'代表插入符号。
现在我想在插入符号之前获得最长的字符串,其中只包含a-z。这里将是“abcd”。
但是如果我使用方法jtextpane.getCaretPosition(),我将得到一个整数11.(因为在插入符号之前有10个ascii字符和一张图片)。这不是我想要的整数。也许我可以计算 img 的字符数,但它仍然很麻烦,容易出现错误。
那么如何获得正确的字符串?
<html>
<body>
<p>
Hello, everybody!!<br>
<img src="xx.jpg">
</p>
<p>
Hello, everybody|!!<br> //The caret is here, at the left of '!'
<img src="xx.jpg">
</p>
<p>
Hello, everybody!!<br>
<img src="xx.jpg">
</p>
</body>
<html>
在上面的示例中,插入符号现在位于第二句中。
我想要做的就是在插入符号之前将“所有人”替换为“每个人”(其余的“每个人都保持不变”)。但是,如果我使用getCaretPosition(),我将无法得到'!'的正确索引。在HTML文本中。
那么解决方案是什么?