java - 由于以下原因导致Android Studio崩溃:java.lang.ArrayIndexOutOfBoundsException:length = 1;指数= 6

标签 java android arraylist crash indexoutofboundsexception

这是我的第一次分享。请帮我。我认为问题是数组溢出,但是所有代码都正确。程序未运行。关闭后崩溃。感谢您的帮助。

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();
}

最佳答案

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);
            }
}

关于java - 由于以下原因导致Android Studio崩溃:java.lang.ArrayIndexOutOfBoundsException:length = 1;指数= 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44843314/

相关文章:

java - Android Studio 2 比较对象和 boolean 编译是否成功?

java - Android-如何在服务和命令行之间进行通信

android - 如何在 Flutter 中动态改变文本的颜色?

java - 如何循环遍历数组并从 ArrayList 创建子字符串?

java - 从 ArrayList 访问对象的详细信息

c# - 什么时候在 C# 中使用 ArrayList 而不是 array[]?

java - StartActivityForResult,但 Activity 结束

java - DataBindingUtil.setContentView 返回 null

Android Appcompat-v7 错误

java - 如何测试坏参数的所有组合?