我想接受所输入的单词并替换它 用“hi”这个词 我只是试图让它替换为单词 放。当我跑它时,它崩溃了。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText r=(EditText)findViewById(R.id.editText1);
String t=r.getText().toString();
String[] t1= t.split(" ");
for(int i=0;i<=t1.length;i++)
{
if(t[i].equals("hi") )
{
TextView uu=(TextView)findViewById(R.id.textView2);
uu.setText(t[i]);
}
}
}
答案 0 :(得分:1)
只需将t [i]更改为t1 [i]
试试这个
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText r=(EditText)findViewById(R.id.editText1);
String t=r.getText().toString();
String[] t1= t.split(" ");
for(int i=0;i<=t1.length;i++)
{
if(t1[i].equals("hi") )
{
TextView uu=(TextView)findViewById(R.id.textView2);
uu.setText(t1[i]);
}
}
}
答案 1 :(得分:1)
替换 t1 [] 而不是 t [] 。
试试这个:
if(t1[i].equals("hi") )
代替if(t[i].equals("hi") )
答案 2 :(得分:0)
如果没有实际的错误,我们不能说太多,就是说,这段:
for(int i=0;i<=t1.length;i++)
{
if(t[i].equals("hi") )
{
TextView uu=(TextView)findViewById(R.id.textView2);
uu.setText(t[i]);
}
}
在Java中会产生ArrayOutOfBoundsException
,数组基于0,最后一个可访问的数组位置为[arraySize] - 1
。
将其更改为:
for(int i=0;i<t1.length;i++)
{
if(t[i].equals("hi") )
{
TextView uu=(TextView)findViewById(R.id.textView2);
uu.setText(t[i]);
}
}
应该解决问题(至少对于这个特殊的例外)。
但是,这应该只对构成短语的字符进行迭代,因此它永远不应与hi
匹配。在此处t[i]
更改为t1[i]
:if(t1[i].equals("hi") )
,可能在此处:uu.setText(t1[i]);
应该会产生更好的解决方案。
正如一个FYI,使用有意义的名字永远不会伤害。
答案 3 :(得分:0)
为什么每次都要初始化
TextView uu =(TextView)findViewById(R.id.textView2);
将其保留在oncreate()中
答案 4 :(得分:0)
t[i].equals("hi")
比较对象。 用t1 [i] .tostring()==“Hi”
替换它答案 5 :(得分:0)
我在你的代码中发现了一些错误。不需要拆分。我认为你的代码应该是
final EditText r=(EditText)findViewById(R.id.editText1);
TextView uu=(TextView)findViewById(R.id.textView2);
String t=r.getText().toString();
if(t.contains("hi"))
{
// do your stuff
}
else{
//false
}
答案 6 :(得分:0)
你说你要用“hi”这个词替换输入的任何单词。但是你正在检查这个词(我认为不是t [i]你想说t1 [i])等于“hi”然后你想把它放在第二个textView中吗?您只需要在原始输入中获得“hi”的数量。如果您想将任何单词更改为“hi”,只需删除if测试,您将获得与您输入的单词一样多的“hi”。