我是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);
}
}
答案 0 :(得分:0)
您永远不会为dt_str
分配任何内容;您尝试分配给它的 elements ,但从未创建实际的数组。
答案 1 :(得分:0)
实际上不知道您想用代码真正实现什么,因为没有定义几个变量(例如dateString
和s
)。同样,数组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循环之前。
但是,我不确定您要使用此方法实现什么。