Java 编辑软件

Java Editor Software

我正在使用 java 创建一个编辑器,当我用 java 替换 c++ 时我的查找和替换选项失败,然后在替换我的代码后显示 java++ 它确实如此没有将 ++ 完全替换到文本文件中。

下面是我使用 patcher 和 matcher 在我的代码中创建的查找方法

public void findingValue1() {

    p = Pattern.compile(p.quote(tf1.getText()));
    m = p.matcher(tavalue);

    if (m.find(x)) {
        y = 0;
        char ch[] = tavalue.toCharArray();
        for (int i = 0; i < m.start(); i++)
            if (ch[i] == '\n')
                y++;
        ta.select(m.start() - y, m.end() - y);
        r1 = m.start() - y;
        r2 = m.end() - y;
        x = m.end();
        user = true;
    } else
        cannotFound();
    f1.toFront();
}

public void findingValue2() {
    try {
        s1 = ta.getText();
        s1 = s1.replaceAll("\r", "");
        ta.setText(s1);
        ta.setCaretPosition(pos);
        p = Pattern.compile(tf2.getText());
        m = p.matcher(s1);
        if (m.find(pos)) {
            ta.requestFocus();
            ta.select(m.start(), m.end());
            String str1, str2;
            str1 = tf3.getText();
            str2 = tf2.getText();
            if (str1.length() > str2.length())
                pos = m.end() + 1;
            else
                pos = m.start() + 1;
        } else
            cannotFound();

    } catch (Exception ex) {
        cannotFound();
    }

}

我知道这不是提问的正确方式,但我的代码非常庞大。
谁能解释为什么会这样?

这个...

        p=Pattern.compile(tf2.getText());

...使用输入到tf2的文本是一个正则表达式来匹配。 + 字符是在正则表达式中具有特殊含义的几个字符之一。如果您想将用户输入视为文字文本,而不管它包含什么字符,那么您需要引用它或以其他方式指示。例如,

        p = Pattern.compile(Pattern.quote(tf2.getText()));