替换没有任何问题,除非在我替换我要替换的内容之后,textarea上的所有其他字符串突然变成小写,我该如何修复它
replacebutton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String txt = textArea.getText().toLowerCase();
String txt2 = search.getText().toLowerCase();
String txt3 = replace.getText();
if (txt.contains(txt2)) {
textArea.setText(txt.replaceAll(txt2, txt3));
}
}
});
答案 0 :(得分:1)
突然降低的原因是你在textArea.GetText()上调用了toLowercase。 txt变量现在包含一个全小写字符串。然后调用textArea.setText(txt ...
你可以试试这个:
String txt = textArea.getText();
String txt2 = search.getText();
String txt3 = replace.getText();
if (txt.contains(txt2)) {
textArea.setText(txt.replaceAll(txt2, txt3));
}
(但是你不会对不区分大小写的搜索和替换..)
答案 1 :(得分:0)
您将之前设置为小写的txt变量设置回来。这就是为什么在这个程序之后一切都是小写的。
您可以用以下内容替换不敏感:
String.replaceAll("(?i)" + toReplace, Replacement);
像这样使用:
public void actionPerformed(ActionEvent e) {
String txt = textArea.getText();
String txt2 = search.getText();
String txt3 = replace.getText();
if (txt.toLowerCase().contains(txt2.toLowerCase())) {
textArea.setText(txt.replaceAll("(?i)" + txt2, txt3));
}
}