如何用 JtextPane 中的 contains() 方法替换单词
how to replace a word with in contains() Method form a JtextPane
好吧,我正在尝试使用 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"
谁能告诉我怎么做。
谢谢
What I'm trying to do is get the value from the user. then search if it found replace it with something.
不要使用 contains()
方法,因为您需要搜索文本两次:
- 一次查看是否在字符串中找到文本
- 再次用新字符串替换文本。
请改用 String.indexof(...)
方法。如果在字符串中找到它,它将 return 文本的索引。
那么您应该直接在文本窗格的文档中替换文本,而不是在字符串本身中。所以代码应该是这样的:
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 了解更多信息,了解为什么这很重要。
好吧,我正在尝试使用 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"
谁能告诉我怎么做。
谢谢
What I'm trying to do is get the value from the user. then search if it found replace it with something.
不要使用 contains()
方法,因为您需要搜索文本两次:
- 一次查看是否在字符串中找到文本
- 再次用新字符串替换文本。
请改用 String.indexof(...)
方法。如果在字符串中找到它,它将 return 文本的索引。
那么您应该直接在文本窗格的文档中替换文本,而不是在字符串本身中。所以代码应该是这样的:
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 了解更多信息,了解为什么这很重要。