StringBuilder and For Loop



我的问题:

是否可以在for循环中使用StringBuilder()

我有这个代码:

text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
text.setTextColor(Color.WHITE);
text.setBackgroundColor(Color.parseColor("#c04485ed"));
String a = view.getTag().toString();
String b = text.getText().toString();
String formedWord = "";
StringBuilder word = new StringBuilder();
for(int i = 0; i <= 10; i++){
word.append(b);
if (word.length() == wordArray[i].length()){
formedWord = word.toString();
if(formedWord.equals(wordArray[i])){
break;
}
}                   
}

}
});

以上代码说明

代码的功能是从单击的textViews()形成一个字符串,并if该单词等于字符串索引 i 上的字符串length()wordArray[]系统将检查形成的 Wordif等于同一索引上的字符串。

错误:

E/Android运行时:致命异常:main 进程: com.example.gabriel.salitaangpinoy10, PID: 8780 java.lang.ArrayIndexOutOfBoundsException: length=5;索引=6 at com.example.gabriel.salitaangpinoy10.GameScreen$2.onClick(GameScreen.java:247) at android.view.View.performClick(View.java:5210) at android.view.View$PerformClick.run(View.java:21169) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5451) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

当我检查

com.example.gabriel.salitaangpinoy10.GameScreen$2.onClick(GameScreen.java:247)

它把我带到了这一行:

if (word.length() == wordArray[i].length())

请检查代码片段中的以下行。它的条件 i <= 10,这意味着循环如果不中断,将运行十次。你怎么知道循环必须运行到 10 计数。可能你应该从传递给方法的事件文本长度派生循环计数器值,或者它应该是 i <= wordArray.length 以避免异常

for(int i = 0; i <= 10; i++){

最新更新