Java 选择索引与getText索引不同

Java 选择索引与getText索引不同,java,string,swing,document,jeditorpane,Java,String,Swing,Document,Jeditorpane,我是java新手,7天前开始了一个项目,今天和一些来自这里的人一起,我成功地解决了一个问题,但还有一个问题 在上一个问题中,我需要搜索一个字符串并突出显示它,但现在,我的问题是: 为什么选择索引与我在不认识自己的未知字符后搜索的索引不同:| 这是我的按钮代码: int startFrom = jEditorPane1.getSelectionStart(); if(jEditorPane1.getSelectionStart() == jEditorPane1.getSelect

我是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);
    }
我确信我需要做一些字符串处理,将字符串索引转换为swing jEditorPane/JTextPane索引

例如: 我在字符串中搜索do,如下所示: “嘿, 您好。”

它以这种方式突出了这一点: “嘿, d
o
你是怎么做的?”

这意味着它开始了一个索引,它应该是什么,在这里它是casue-escape-char的\n,我不知道,因为有时它发生在单行文本中

我如何了解这一点?

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

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

上面的内容将只返回“\n”作为下线字符串,因此当您进行搜索并选择文本时,偏移量将匹配。

您没有从上次发布中了解到任何信息吗?您被要求发布带有原始问题的SSCCE。我们没有时间坐在那里等你发布SSCCE。我只知道答案,因为我回答了最后的问题。阅读此问题的其他人不知道您问题的上下文。另外,由于您使用的是JTextPane,请恰当地命名变量,这样发布的代码就不会误导我们。JEditorPane和JTextPane的行为可能会有所不同。啊,再次感谢,如果我不在一个有限的国家,并且有一些全球账户,我真的希望付给你一半,因为你不仅挽救了我的工作,还挽救了我的声誉,我为比赛拿了我们大学的价格,学生们知道我是一名优秀的编码员,这对我来说是不好的。粗暴地说,我什么都不是:如果我以前有新的这个,我可以利用HTML制作荧光笔,我告诉他我不能这样做:))JTextPane支持高亮显示,而且比使用HTML容易得多。我开始的时候,我只是毫无知识地浏览netbean上的工具提示,然后开始写作,就像我从C#知道的那样,我遇到了许多以前从未遇到过的新事物,尽管我再次使用JavaGUI环境。为什么java有这样的东西?它们是什么<代码>新建[类名].[某物]()?是嵌套类吗?还有一点,当我们用class.forName(…)实现mysqlConnection时,我们不存储它,它放在哪里?