所以我编写了一个代码来搜索textArea中的单词。这是代码:
else if(str.equals("Find Next"))
{
if(ta.getText().length()!=0 && t1.getText().length()!=0)
{
int n = ta.getText().trim().indexOf(t1.getText().trim());
ta.select(n,t1.getText().length());
}
}
作为参考,ta是texarea,t1是TextField,用户输入要搜索的单词。我的问题是,当我写一个像这样的字符串 - 他是一个好孩子,搜索说,好,然后好,没有选择,但当我搜索"他" ,他被选中了。我基本上想说的是,如果我在textField中输入字符串的第一个单词,则会搜索并选择它,但如果我输入任何其他单词则不会被选中。我在哪里做错了?
答案 0 :(得分:0)
问题是select的第二个参数需要是String的结束索引 - 它不是一个大小,而是一个位置。您提供的代码适用于String的开头,因为n为零,因此您的位置和大小恰好相同。我认为您可以通过将最后一行更改为:
来解决您的问题ta.select(n,n + t1.getText().length());
在工作情况下(在String的开头),n = 0所以我们什么都没改变。在不起作用的情况下,这个额外的“n +”将我们带到我们需要完成的位置。