我有两个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中。但是,它并没有改变这个词。那么我做错了什么?
谢谢!
答案 0 :(得分:2)
字符串是不可变的;他们无法改变。所以:
hello.replace("hei", "hello");
应该是:
hello = hello.replace("hei", "hello");
替换方法必须返回一个包含更改的新字符串,因为它无法修改原始字符串。