好吧,我正在尝试使用contains()方法替换一个单词:
String z = tfB.getText().toString();
String show = textPane.getText().toString();
if(show.contains(z)){
// how I specify the word that were found and change it without
effecting anything with in that line
}
以及我的主要内容:
我要做的是从用户那里获取价值。 然后搜索它是否找到替换它的东西。例如:
String x = "one two three four five";
应将textPane设置为"one two 3 four five"
或
"one two 3-three-3 four five"
任何人都可以告诉我该怎么做。
谢谢
答案 0 :(得分:0)
我要做的是从用户那里获取价值。然后搜索它是否找到替换它的东西。
请勿使用contains()
方法,因为您需要搜索文本两次:
相反,请使用String.indexof(...)
方法。它将返回在String中找到的文本的索引。
然后,您应该直接在文本窗格的文档中替换文本,而不是在字符串本身中。所以代码就像:
int length = textPane.getDocument().getLength();
String text = textPane.getDocument().getText(0, length);
String search = "abc...";
int offset = text.indexOf(search);
if (offset != -1)
{
textPane.setSelectionStart(offset);
textPane.setSelectionEnd(offset + search.length();
textPane.replaceSelection("123...");
}
此外,不是您从文档而不是文本窗格获取文本。这是为了确保在替换文档中的文本时偏移是正确的。查看Text and New Lines了解更重要的信息。