gpt4 book ai didi

java - ArrayIndexOutOfBoundsExecption :Android

转载 作者:太空狗 更新时间:2023-10-29 15:55:26 25 4
gpt4 key购买 nike

我是一名 Android 开发新手。我试图从用户使用和 Edittext 框获取文本输入,然后将该文本转换为字符串,然后转换为大小为 4 的字符数组。我已经存储了一个大小为 4 的数组,它包含值。我想比较两个数组并根据结果执行任务。

我不知道为什么会收到 ArrayIndexOutOfBoundsExecption

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newgame);

Button submit = (Button) findViewById(R.id.guess);



EditText guess = (EditText) findViewById(R.id.editText1);


boolean c=false;

char[] guessword;
char[] appword = {'T', 'R', 'U', 'E'};
guessword = guess.getText().toString().toCharArray();


for(int i=0;i<appword.length;i++)
{
if(guessword[i]==appword[i])
{
c=true;
}
else
{
c=false;
}
}

final boolean correct=c;


submit.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

if(correct){
startActivity(new Intent(Newgame.this, Win.class));
}
else{
startActivity(new Intent(Newgame.this, Loose.class));
}

}
});



}

最佳答案

问题是 guessword 可能少于四个字符,而您的代码不会检查该条件。

如下更改您的代码以说明这种情况:

for(int i=0;i<appword.length;i++)
{
if((i < guessword.length) && (guessword[i]==appword[i]))
{
c=true;
}
else
{
c=false;
break; // <<<=== Add this to end the loop
}
}

另请注意,当字符彼此不相等时,您编写的代码不会“锁定”false:例如,{'A','B',' Z'}{'X', 'Y', 'Z'} 在您的旧算法下比较相等。添加 break 以在看到 false 时立即退出循环。

关于java - ArrayIndexOutOfBoundsExecption :Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12029770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com