这是我第一次分享。请帮我。我认为问题是数组溢出,但代码中的一切都是正确的。程序未运行。关闭后崩溃。谢谢你的帮助。
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=6
at com.teornek.ehliyetsinavi.MainActivity.soruDosyasiOku(MainActivity.java:71) at com.teornek.ehliyetsinavi.MainActivity.onCreate(MainActivity.java:53)
这是崩溃的方法:
private void soruDosyasiOku() {
InputStream stream = getResources().openRawResource(R.raw.ehliyet);
BufferedReader reader = new BufferedReader(new InputStreamReader(stream, Charset.forName("UTF-16")));
Soru yeniSoru;
String soru = null;
sorular = new ArrayList<Soru>();
try {
while ((soru = reader.readLine()) != null) {
String [] soruIcerik;
soruIcerik = soru.split(";");
String konu = soruIcerik[0];
String dogru = soruIcerik[6]; **//THIS IS (MainActivity.java:71)**
if ((konu.equals("T") || konu.equals("M") || konu.equals("Y")) &&
(dogru.equals("A") || dogru.equals("B") || dogru.equals("C") || dogru.equals("D"))) {
yeniSoru = new Soru(soruIcerik[0], soruIcerik[1], soruIcerik[2],
soruIcerik[3], soruIcerik[4], soruIcerik[5], soruIcerik[6]);
sorular.add(yeniSoru);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
soru = (TextView) findViewById(R.id.soru);
soru.setEnabled(false);
cevap1 = (Button) findViewById(R.id.cevap1);
cevap2 = (Button) findViewById(R.id.cevap2);
cevap3 = (Button) findViewById(R.id.cevap3);
cevap4 = (Button) findViewById(R.id.cevap4);
Button konular = (Button) findViewById(R.id.konular);
Button sinaviBaslat = (Button) findViewById(R.id.sinaviBaslat);
cevap1.setOnClickListener(cevapTikla);
cevap2.setOnClickListener(cevapTikla);
cevap3.setOnClickListener(cevapTikla);
cevap4.setOnClickListener(cevapTikla);
konular.setOnClickListener(konularTikla);
sinaviBaslat.setOnClickListener(sinaviBaslatTikla);
soruDosyasiOku(); **//THIS IS (MainActivity.java:53)**
tercihleriOku();
sinaviBaslat();
}
答案 0 :(得分:0)
soruIcerik = soru.split(";");
if (soruIcerik.length == 7) {
String konu = soruIcerik[0];
String dogru = soruIcerik[6]; **//THIS IS (MainActivity.java:71)**
if ((konu.equals("T") || konu.equals("M") || konu.equals("Y")) &&
(dogru.equals("A") || dogru.equals("B") || dogru.equals("C") || dogru.equals("D"))) {
yeniSoru = new Soru(soruIcerik[0], soruIcerik[1], soruIcerik[2],
soruIcerik[3], soruIcerik[4], soruIcerik[5], soruIcerik[6]);
sorular.add(yeniSoru);
}
}