については、私の質問:のStringBuilderとループ
が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()
と同じです。if
がチェックされます。 Wordは同じインデックスの文字列と同じです。
ERROR:
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.gabriel.salitaangpinoy10, PID: 8780 java.lang.ArrayIndexOutOfBoundsException: length=5; index=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())
このようにすることができます。問題がどこにあるのか教えてください。 –
@Gboyなぜforループ内で 'i ++; 'をインクリメントしていますか? –
ここで起きていることは、 'word'に' b'を続けて続けているので、最初の繰り返し 'b'は' value 'を保持し、2回目の反復 'b'は' valuevalue」を保持します。これは、あなたの言葉の長さに一致する問題を持っている理由です。私の質問の編集を参照するには@TobiasOt – CraigR8806