字符串数组returns空指针异常
String array returns null pointer exception
a=10.00;
b=11.00;
mor_names=new String[]{};
for(double cal=Double.parseDouble(a);cal<=Double.parseDouble(b);) {
mor_names[val]=(Double.toString(cal));
System.out.println("values are:" + mor_names[val]);
val++;
cal=cal+0.15;
}
我尝试向字符串数组添加一个值,但它引发了一个空指针异常,为什么?
编辑 1:
DateFormat time = new SimpleDateFormat("HH:mm");
try
{
timefrom =(Time) time.parse(json.get(position).toString());
timeto = (Time) time.parse(json.get(position).toString());
}
catch (ParseException e)
{
e.printStackTrace();
}
Calendar cal = Calendar.getInstance();
System.out.println("times are :"+timefrom+" "+timeto+" "+position);//null null 0 was output for this
for(Time i=timefrom;i.equals(timeto);)
{
cal.setTime(i);
System.out.println("values are:" + i);
mor_names[val]=(String) i.toString();
cal.add(Calendar.MINUTE, 15);
System.out.println("values are:" + mor_names[val]);
String newTime = df.format(cal.getTime());
try
{
i=new java.sql.Time(time.parse(newTime).getTime());
}
catch (ParseException e)
{
e.printStackTrace();
}
val++;
}
我试图在特定的时间间隔中获取日期,所以我试图使用 java 日历并操作我的代码,但可能我无法正确处理。
String a="10.00";
String b="11.00";
int val=0;
String [] mor_names=new String[10];
for(double cal=Double.parseDouble(a); cal<=Double.parseDouble(b);){
mor_names[val]=(Double.toString(cal));
System.out.println("values are:" + mor_names[val]);
val++;
cal=cal+0.15;
}
你可以使用这个code.if你想要动态字符串数组,你应该使用列表或映射。
让我们检查一下您的代码:
a=10.00;
b=11.00;
由此我们可以假设 a
和 b
是 Double
的类型,因此您不能使用 double cal = Double.parseDouble(a)
来获得 double
价值。如果 a
和 b
的类型是 String
:
,这将是正确的
String a="10.00";
String b="11.00";
下一行:
mor_names=new String[]{};
将初始化 空 字符串数组。 {}
括号与数组一起使用,以使用以下值初始化数组:
String[] mor_names = {"Hello", "World", "!"};
和这一样:
String[] mor_names = new String[]{"Hello", "World", "!"};
你想给数组赋值,所以你可以像这样初始化你的数组:
String[] mor_names = new String[7]{};
因此,在 mor_names
中存储的值不能超过索引为 0 到 6 的 7。
如果您想要更灵活的方法,请使用 ArrayList
:
ArrayList<String> mor_names = new ArrayList<String>();
这将创建一个 "dynamic array",您可以在其中 add
、remove
和 get
您的 String
对象。
循环:
for(double cal = Double.parseDouble(a) ; cal<=Double.parseDouble(b) ; )
让我们像之前提到的那样解决一件事,假设 a
和 b
是 double
.
的类型
for(double cal = a ; cal <= b ; )
首先,cal
变量被初始化为 a
的值。 For 是一个循环,它将在 {}
括号之间重复代码,直到 cal <= b
为真。你在这个循环中递增 cal
值,但这是不必要的 - 你可以这样做:
for(double cal = a ; cal <= b ; cal+=0.15)
也就是说,每次循环内的代码执行到最后,cal
都会增加0.15
。然后,如果 cal
小于或等于 b
,代码将重复。否则循环将结束。
如果您尝试将 String
值分配给未初始化的数组,NullPointerException
会上升。但这不是这里发生的事情,因为 mor_names
不是 null
.
您应该在 java 中阅读有关初始化变量以及使用数组和容器的内容。祝你好运。
编辑 1:
您提供的数据不完整。您应该提供使您的问题可靠的所有内容,尤其是对您要归档的内容的严格和具体的描述。
了解 How to parse JSON in Java and Java - Date & Time。使用google并理解阅读。
关于使用堆栈溢出你应该开始here.
再来一次,祝你好运。
a=10.00;
b=11.00;
mor_names=new String[]{};
for(double cal=Double.parseDouble(a);cal<=Double.parseDouble(b);) {
mor_names[val]=(Double.toString(cal));
System.out.println("values are:" + mor_names[val]);
val++;
cal=cal+0.15;
}
我尝试向字符串数组添加一个值,但它引发了一个空指针异常,为什么?
编辑 1:
DateFormat time = new SimpleDateFormat("HH:mm");
try
{
timefrom =(Time) time.parse(json.get(position).toString());
timeto = (Time) time.parse(json.get(position).toString());
}
catch (ParseException e)
{
e.printStackTrace();
}
Calendar cal = Calendar.getInstance();
System.out.println("times are :"+timefrom+" "+timeto+" "+position);//null null 0 was output for this
for(Time i=timefrom;i.equals(timeto);)
{
cal.setTime(i);
System.out.println("values are:" + i);
mor_names[val]=(String) i.toString();
cal.add(Calendar.MINUTE, 15);
System.out.println("values are:" + mor_names[val]);
String newTime = df.format(cal.getTime());
try
{
i=new java.sql.Time(time.parse(newTime).getTime());
}
catch (ParseException e)
{
e.printStackTrace();
}
val++;
}
我试图在特定的时间间隔中获取日期,所以我试图使用 java 日历并操作我的代码,但可能我无法正确处理。
String a="10.00";
String b="11.00";
int val=0;
String [] mor_names=new String[10];
for(double cal=Double.parseDouble(a); cal<=Double.parseDouble(b);){
mor_names[val]=(Double.toString(cal));
System.out.println("values are:" + mor_names[val]);
val++;
cal=cal+0.15;
}
你可以使用这个code.if你想要动态字符串数组,你应该使用列表或映射。
让我们检查一下您的代码:
a=10.00;
b=11.00;
由此我们可以假设 a
和 b
是 Double
的类型,因此您不能使用 double cal = Double.parseDouble(a)
来获得 double
价值。如果 a
和 b
的类型是 String
:
String a="10.00";
String b="11.00";
下一行:
mor_names=new String[]{};
将初始化 空 字符串数组。 {}
括号与数组一起使用,以使用以下值初始化数组:
String[] mor_names = {"Hello", "World", "!"};
和这一样:
String[] mor_names = new String[]{"Hello", "World", "!"};
你想给数组赋值,所以你可以像这样初始化你的数组:
String[] mor_names = new String[7]{};
因此,在 mor_names
中存储的值不能超过索引为 0 到 6 的 7。
如果您想要更灵活的方法,请使用 ArrayList
:
ArrayList<String> mor_names = new ArrayList<String>();
这将创建一个 "dynamic array",您可以在其中 add
、remove
和 get
您的 String
对象。
循环:
for(double cal = Double.parseDouble(a) ; cal<=Double.parseDouble(b) ; )
让我们像之前提到的那样解决一件事,假设 a
和 b
是 double
.
for(double cal = a ; cal <= b ; )
首先,cal
变量被初始化为 a
的值。 For 是一个循环,它将在 {}
括号之间重复代码,直到 cal <= b
为真。你在这个循环中递增 cal
值,但这是不必要的 - 你可以这样做:
for(double cal = a ; cal <= b ; cal+=0.15)
也就是说,每次循环内的代码执行到最后,cal
都会增加0.15
。然后,如果 cal
小于或等于 b
,代码将重复。否则循环将结束。
String
值分配给未初始化的数组,NullPointerException
会上升。但这不是这里发生的事情,因为 mor_names
不是 null
.
您应该在 java 中阅读有关初始化变量以及使用数组和容器的内容。祝你好运。
编辑 1:
您提供的数据不完整。您应该提供使您的问题可靠的所有内容,尤其是对您要归档的内容的严格和具体的描述。
了解 How to parse JSON in Java and Java - Date & Time。使用google并理解阅读。
关于使用堆栈溢出你应该开始here.
再来一次,祝你好运。