0

我是java新手,7天前开始了一个项目,今天和这个地方的一些人一起成功解决了一个问题,但还有一个问题......

在最后一个问题中,我需要搜索一个字符串并突出显示它,但是现在,我的问题是:

为什么选择索引与我在一些我不认识自己的未知字符后搜索的索引不同:|

这是我的按钮代码:

    int startFrom = jEditorPane1.getSelectionStart();
    if(jEditorPane1.getSelectionStart() == jEditorPane1.getSelectionEnd()){
        startFrom = -1;
    }

    String searchWord = jTextField3.getText();
    int searchIndex = jEditorPane1.getText().indexOf(searchWord, startFrom + 1);
    if(searchIndex != -1){
        jEditorPane1.requestFocusInWindow();
        jEditorPane1.select(searchIndex, searchIndex+searchWord.length());
    }
    else{
        jEditorPane1.setSelectionStart(0);
        jEditorPane1.setSelectionEnd(0);
    }

我确定我需要做一些字符串处理,将字符串索引转换为摇摆 jEditorPane/JTextPane 索引

例如:我在这样的字符串中搜索 do:“嘿,你好吗?”

它以这种方式突出显示:“嘿,o你好吗?”

这意味着它开始了一个索引,它应该是什么,在这里它是 \n 的转义字符,我不知道,导致它在单行文本中发生一段时间......

我怎么能搭上这个?

4

1 回答 1

1

有关更多信息和解决方案,请参阅文本和换行。此链接的基础是使用:

int length = textPane.getDocument().getLength();
String text = textPane.getDocument().getText(0, length);

以上将只返回 "\n" 作为 EOL 字符串,因此当您进行搜索然后选择文本时偏移量将匹配。

于 2013-06-12T19:05:32.237 回答