【发布时间】:2015-10-14 10:08:48
【问题描述】:
我想将值 HTRANS 和 HBURST 存储在一个列表中,将 2'b00 和 3'b000 存储在另一个列表中。但是我在我编写的代码中遇到了一个空指针异常,我已经为此编写了一个 SSCCE,请帮忙。
import java.util.ArrayList;
import java.util.List;
public class SSCCE1 {
public static void main(String[] args) {
List<String> bins = new ArrayList<String>();
bins.add("HTRANS = 2'b00 to 2'b11");
bins.add("HTRANS = 2'b00 to 2'b11, HBURST = 3'b000 to 3'b111");
String[] bins_splitcomma = null;
String temp;
for(int i =0; i < bins.size(); i++) {
temp = bins.get(i);
if(temp.contains(",")) { // if element of bins contains comma, case 2.
bins_splitcomma = temp.split(",");
}
else {
bins_splitcomma[0] = temp; // if element of bins does not contain a comma, case 1.
}
}
}
}
输出:
Exception in thread "main" java.lang.NullPointerException
at codecoveragetool.SSCCE1.main(SSCCE1.java:28)
Java Result: 1
我的完整代码:
String temp1;
String[] bins_splitcomma = null;
String[] bins_split;
List<String> bins_name = new ArrayList<String>();
List<String> bins_bitrange = new ArrayList<String>();
//List<String> bins_bits = new ArrayList<String>();
ArrayList<ArrayList<String>> bins_bits = new ArrayList<ArrayList<String>>();
List<String> bins = dataStr.get("bins");
System.out.println(bins);
for(int i =0; i < bins.size(); i++) {
temp1 = bins.get(i);
if(temp1.contains(",")) {
bins_splitcomma = temp1.split(",");
}
else {
bins_splitcomma = new String[]{temp1};
}
for(int j = 0; j < bins_splitcomma.length; j++) {
bins_split = bins_splitcomma[j].split("="); // HBURST = 3'b000 to 3'b111
if(!(bins_name.contains(bins_split[0].trim()))) {
bins_name.add(bins_split[0].trim()); // HBURST
bins_bitrange.add(bins_split[1].trim()); // 3'b000 to 3'b111
ArrayList<String> tempo = returnBits(bins_split[1].trim()); // [3'b000, 3'b001, 3'b010, 3'b011, ... , 3'b111]
bins_bits.add(tempo);
}
}
}
【问题讨论】:
-
bins_splitcomma[0] = temp;失败是因为 bins_splitcomma 为空。你想用这个数组做什么?
-
我想将 HTRANS 存储在一个列表中,将“2'b00 to 2'b11”存储在另一个列表中。以及第一个列表中的 HBURST 和第二个列表中的“3'b000 to 3'b111”。
-
我需要一个解决方案,而不是关于空异常的理论。
-
您不需要检查逗号。如果没有逗号, split 将返回一个单元素数组——这正是你想要实现的。
标签: java arrays string nullpointerexception split