String数组返回空指针异常

时间:2015-07-31 06:47:43

标签: java string pointers exception null

101    MM Response Model    2015-07-28    27
101    MM Response Model    2015-07-28    3f
101    MM Response Model    2015-07-28    f6
101    MM Response Model    2015-07-28    e8
101    MM Response Model    2015-07-28    92

我尝试向字符串数组添加一个值,但它引发了一个空指针异常,为什么?

编辑1:

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;
}

我试图在特定的时间间隔中得到一个日期,所以我试图沉入java日历并操纵我的代码,但可能我不能正确。

2 个答案:

答案 0 :(得分:1)

让我们检查您的代码:

a=10.00;
b=11.00;

由此我们可以假设ab是[{1}}的类型,因此您无法使用Double来获取double cal = Double.parseDouble(a)值。如果doublea属于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]{}; 中存储比7更多的值,索引从0到6。

如果您想要更灵活的方法,请使用mor_names

ArrayList

这将创建一个&#34;动态数组&#34;您可以ArrayList<String> mor_names = new ArrayList<String>(); addremove get个对象。

循环:

String

假设for(double cal = Double.parseDouble(a) ; cal<=Double.parseDouble(b) ; ) a的类型为b,我们就像之前提到的那样修复一件事。

double

首先,for(double cal = a ; cal <= b ; ) 变量初始化为cal的值。 For是一个循环,它将在a个括号之间重复代码,直到{}为真。你在这个循环中递增cal <= b值,但这是不必要的 - 你可以这样做:

cal

这意味着每次循环中的代码执行到最后时,for(double cal = a ; cal <= b ; cal+=0.15) 将增加cal。然后,如果0.15小于或等于cal,则代码将重复。否则循环将结束。

如果您尝试将b值分配给未初始化的数组,

NullPointerException会上升。但这不是这里发生的事情,因为String不是mor_names

您应该阅读有关初始化变量以及在java中使用数组和容器的内容。祝你好运。

编辑1:

您提供的数据不完整。您应该提供使您的问题可靠的所有内容,特别是对您要归档的内容的严格和具体描述。

了解How to parse JSON in JavaJava - Date & Time。使用谷歌阅读并理解。

关于使用堆栈溢出,您应该开始here

再一次,祝你好运。

答案 1 :(得分:0)

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;
}

你可以使用这个代码。如果你想要动态字符串数组,你应该使用list或map。