使用替换为DocumentListener

时间:2013-02-05 14:16:42

标签: java replace documentlistener

我有两个textareas。当我在第一个textarea中输入内容时,它会在第二个文本中显示出来。我想使用replace来替换不同单词的某些单词(如翻译器)。

我的DocumentListener看起来像这样:

DocumentListener documentListener = new DocumentListener() {

    public void changedUpdate(DocumentEvent documentEvent) {
        printIt(documentEvent);
    }
    public void insertUpdate(DocumentEvent documentEvent) {
        printIt(documentEvent);
    }
    public void removeUpdate(DocumentEvent documentEvent) {
        printIt(documentEvent);
    }
    private void printIt(DocumentEvent documentEvent) {
        DocumentEvent.EventType type = documentEvent.getType();
        String typeString = null;
        if (type.equals(DocumentEvent.EventType.CHANGE)) {
        }  
        else if (type.equals(DocumentEvent.EventType.INSERT)) {
            String hello = area1.getText();
        hello.replace("hei", "hello");
        area2.setText(hello);
        }
        else if (type.equals(DocumentEvent.EventType.REMOVE)) {
            String hello = area1.getText();
        area2.setText(hello);
        }
    }
};

但这不起作用。我以为hello.replace会用hello替换area1中输入的hei这个词,它将显示在area2中。但是,它并没有改变这个词。那么我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

字符串是不可变的;他们无法改变。所以:

hello.replace("hei", "hello");

应该是:

hello = hello.replace("hei", "hello");

替换方法必须返回一个包含更改的新字符串,因为它无法修改原始字符串。