线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:2 at myja.myja.main(myja.java:86) [英] Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at myja.myja.main(myja.java:86)

查看:78
本文介绍了线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:2 at myja.myja.main(myja.java:86)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

package myja;

import java.awt.GridLayout;
import java.io.*;
import java.util.*;
import javax.swing.*;

class Student {
    String Name;
    int RollNo;
    int Marks;
 
    public Student() {
        Name = "";
        RollNo = 0;
        Marks = 0;
    }
 
    public Student(String Name, int RollNo, int Marks) {
        this.Name = Name;
        this.RollNo = RollNo;
        this.Marks = Marks;
    }

    Student(String string, int parseInt, int parseInt0, int parseInt1) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    public String getName() {
        return Name;
    }
 
    public void setName(String Name) {
        this.Name = Name;
    }
 
    public int getRollNo() {
        return RollNo;
    }
 
    public void setRollNo(int RollNo) {
        this.RollNo = RollNo;
    }
 
    public int getMarks() {
        return Marks;
    }
 
    public void setMarks(int Marks) {
        this.Marks = Marks;
    }
 
     
}



public class myja {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
       JFrame frame = new JFrame();
        GridLayout layout = new GridLayout(0,3);
        frame.setLayout(layout);
         
        try{ 
            FileReader fr = null; 
            BufferedReader br = null; 
            fr = new FileReader("D:/waq/input.txt");
            br = new BufferedReader(fr); 
            String line = br.readLine();
            String [] data = null;
          
            frame.add(new JLabel("Name"));
            frame.add(new JLabel("Roll #"));
            frame.add(new JLabel("Marks"));
            List<Student> list = new ArrayList();
             
            while(line != null){
                //data = line.split("\t");
                data = line.split(" ");
                 list.add(new Student(data[0],Integer.parseInt(data[1]),Integer.parseInt(data[2])));
                line = br.readLine(); 
            } 
 
            fr.close();
            int total =0;
            for (Student student : list) {
                System.out.println("Name: "+student.getName() + " Roll # : "+ student.getRollNo()+ " Marks : "+ student.getMarks());
                frame.add(new JLabel(student.getName()));
                frame.add(new JLabel(String.valueOf(student.getRollNo())));
                frame.add(new JLabel(String.valueOf(student.getMarks())));
                total += student.getMarks();
            }
             
             
            frame.add(new JLabel("Average Marks : " +(total/list.size())));
            System.out.println("Average: " + (total/list.size()));
            } catch(IOException e){ 
                System.out.println("File Not Found"); 
        } 
        frame.setSize(400, 200);
         
        frame.setVisible(true);
 
    }
    
}

推荐答案

data = line.split(" ");
list.add(new Student(data[0],Integer.parseInt(data[1]),Integer.parseInt(data[2])));



您没有检查该行实际上是否分成3个字段。


You did not check that the line actually splits into 3 fields.


这篇关于线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:2 at myja.myja.main(myja.java:86)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆