Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Aug 2014
    Bài viết
    0

    Lỗi không chạy được chương trình

    chào mọi người. em là newbie trong java và đan học sách core java. hôm nay gõ một đoạn chương trình trong java thì nó báo lỗi như thế này. mọi người giúp em với ạ. em cảm ơn ạ.
    exception in thread "main" java.lang.stringindexoutofbound***ception: string index out of range: -2
    at java.lang.string.substring(unknown source)
    at lotterry.loterryarray.main(loterryarray.java:23)

  2. #2
    Ngày tham gia
    Feb 2016
    Bài viết
    39
    em up code lên đây thì mọi người mới biết bệnh mà bắt cho e được chứ

  3. #3
    Ngày tham gia
    Jan 2015
    Bài viết
    0
    dạ. đoạn code của nó đây ạ.
    public class lotteryarray {
    public static void main(string[] args)
    {
    final int nmax = 100;
    int[][] odds = new int[nmax + 1][];
    for(int n = 0; n <= nmax; n++ )
    odds[n] = new int[n+1];
    for(int n = 0; n < odds.length; n++)
    for(int k = 0;k < odds[n].length; k++)
    {
    int lotteryodds = 1;
    for( int i = 1; i <= k; i++)
    lotteryodds = lotteryodds*(n - i +1)/i;
    odds[n][k] = lotteryodds;
    }
    for (int n = 0; n < odds.length;n++)
    {
    for(int k = 0; k < odds[n].length; k++)
    {
    string output = " " + odds[n][k];
    output = output.substring(output.length() - 4);
    system.out.print(output);
    }
    system.out.println();
    }
    }
    }

  4. #4
    Ngày tham gia
    Sep 2014
    Bài viết
    0
    loi tran mang roi,ban truy xuat den phan tu ko ton tai trong mang,ban debug di

  5. #5
    Ngày tham gia
    Mar 2014
    Bài viết
    1
    chưa từng thấy bài code nào bá đạo như bài này. đọc quyển clean code trước khi code tiếp nhé bạn:
    - code bạn phức tạp lắm nên nói thế này cho dễ hiểu nhé:
    lotteryodds có thể có 1 kí tự.


    Mã:
    " " + odds[n][k];
    sẽ có thể chỉ có hai kí tự.


    Mã:
    output.length() - 4
    sẽ ra là -2
    mà làm gì có vị trí -2 trong mảng string?

    fix: đặt thêm kiểm tra điều kiện nếu

    Mã:
    output.length()
    mà nhỏ hơn 4 thì không thực hiện phương thức substring(int).

    mà tớ còn chẳng tin là đoạn code kia của bạn build được cơ. copy thiếu hay kiểu gì vậy?

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
  •