Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 5 của 5
  1. #1

    Thắc mắc về lỗi NullPointerException trong hai đoạn code tương tự nhau

    Chào mn. Em\ mình có hai đoạn code tương tự nhau thế này:
    Code này chạy được:
    Mã:
    public class Person07 {
    
        /**
         * @param args the command line arguments
         */
        public String [] LastName= new String[6];
        public String []FirstName= new String[6];
        public void catxau(String [] fullname, int N){
            for(int i=0; i<N; i++){
                String[] a= new String[3];
                a=fullname[i].split(", ");
                LastName[i] = a[0];
                FirstName[i] = a[1];
            }
        }
        public static void main(String[] args) throws FileNotFoundException, IOException {
            // TODO code application logic here
            BufferedReader dataIn;
            int N;
            N = Integer.parseInt(args[0]);
            Person07 per = new Person07();
            dataIn = new BufferedReader(new FileReader("E:\\test\\danhsach.txt"));
            String [] fullname = new String[N+1];
            for(int i=0; i<N; i++){
                fullname[i] = dataIn.readLine();
            }
            per.catxau(fullname, N);
            
    }
    Còn cái này thì bị báo lỗi: Exception in thread "main" java.lang.NullPointerException
    at btl01.BTL01.cut(BTL01.java:46)

    Mã:
    public class BTL01 {
       public static void cut(String []data, String []key){
            for(int i=0; i<data.length; i++){
                String [] b = new String[2];
                b=data[i].split(": ");           // báo lỗi ở đây!
                key[i] = b[0];
            }
        }
        public void AnhViet(String []data, String word) throws FileNotFoundException, IOException{
            BufferedReader dataIn;
            dataIn = new BufferedReader(new FileReader("E:\\test\\Anh_Viet.txt"));
            int i=0;
            while((data[i]=dataIn.readLine()) != null){
                    i++;
            }
            String [] key = new String[data.length+2];
            cut(data, key);
            
    }}
    Tại sao phía dưới lại sai ạ?[IMG]images/smilies/21.gif[/IMG] Và e\m nên sửa thế nào cho đúng. Cảm ơn mn nhiều [IMG]images/smilies/1.gif[/IMG]

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Array.length chỉ cho biết mảng chứa được TỔNG CỘNG bao nhiêu phần chứ, HOÀN TOÀN KHÁC so với số phần tử mà mảng ĐANG chứa.
    Chuyển sang dùng List đi bạn

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Nếu dùng list thì có hàm nào để cắt xâu kí tự không ạ? Mình sửa lại bài này bằng cách cài đặt thêm phương thức tìm kích thước rồi. Vẫn là lỗi cũ, và cũng ở chỗ b=data[i].split(": ");

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mã:
    public class BTL01 {   public static List<String> cut(List<String> data){        List<String> key = new ArrayList<>();        for(String d: data) {            key.add(data[i].split(": ")[0]);        }        return key;    }    public void AnhViet(List<String> data, String word) throws FileNotFoundException, IOException{        BufferedReader dataIn;        dataIn = new BufferedReader(new FileReader("E:\\test\\Anh_Viet.txt"));        String line;        while((line=dataIn.readLine()) != null){            data.add(line);        }        List<String> key = cut(data);        }}

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cảm ơn greigaz nhiều [IMG]images/smilies/kiss.gif[/IMG] . Xem ra mình phải tích cực tìm hiểu hơn nữa, đã gà lại lười, hik [IMG]images/smilies/1.gif[/IMG]

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •