0

我有两个文本区域。当我在第一个 textarea 中输入内容时,它会显示在带有 documentlistener 的第二个文本区域中。我想用 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 会将在 area1 中输入的单词 hei 替换为 hello,然后会显示在 area2 中。但是,它并没有改变这个词。那么我做错了什么?

谢谢!

4

1 回答 1

2

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

你好。替换(“嘿”,“你好”);

应该:

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

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

于 2013-02-05T14:24:39.033 回答