空指针访问:此变量dt_str只能为空

时间:2018-09-28 12:19:57

标签: java

我是Java编码的新手,我的代码出错。我试图通过将m和d数组与s连接为年份来获取传递给函数ABC的年份的日期。我想将其用于问题的下一部分,但是我被

所困扰
  

空指针访问:此变量dt_str只能是null

我在做什么错了?

public class ABC {


    public void ABC(String s)
    {
        String[] dt_str;
        String  m[] = new String[] {"01","02","03""};
        String d[]= new String[] {"01", "02", "03", "04", "05", "06", "07", "08", "09","10", "11","12","13","14","15"};
        for(int i=0;i<m.length;i++) {
            for (int j=0;j<d.length;j++) {
                dt_str[j]=m[i]+d[j]+s;

            }
        }
        System.out.println(dateString);
    }
}

3 个答案:

答案 0 :(得分:0)

您永远不会为dt_str分配任何内容;您尝试分配给它的 elements ,但从未创建实际的数组。

答案 1 :(得分:0)

实际上不知道您想用代码真正实现什么,因为没有定义几个变量(例如dateStrings)。同样,数组m[]的定义方式错误(数据部分为双")-但是,我使用给定的信息“固定”了您的代码:

    String[] m = {"01", "02", "03"};
    String[] d = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15"};
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < m.length; i++) {
        for (int j = 0; j < d.length; j++) {
            sb.append(m[i] + d[j] + " ");
        }
    }
    System.out.println(sb.toString());

这确实会输出0101 0102 0103 0104 0105 0106 0107 0108 0109 0110 0111 0112 0113 0114 0115 0201 0202 0203 0204 0205 0206 0207 0208 0209 0210 0211 0212 0213 0214 0215 0301 0302 0303 0304 0305 0306 0307 0308 0309 0310 0311 0312 0313 0314 0315

答案 2 :(得分:-1)

尝试更改:

 String[] dt_str;

 String[] dt_str = new String[d.length]

并将其移至for循环之前。

但是,我不确定您要使用此方法实现什么。