创建具有变量名的数组时出错,我在Java中从文件中读取数据

时间:2015-07-30 05:49:10

标签: java

特定文件中的变量很少。我想阅读此文件并为每个变量创建一个BitVecExpr[]

例如:文件中有3个变量G5,G6和G7(从文件G5读取而所有其他变量都是string)。我想创建一个名为G5,G6和G7的3 BitVecExpr数组。

BitVecExpr[] G5 = new BitVecExpr[5];

目前,我正在尝试读取文件并将所有变量存储在Arraylist中。然后使用数组列表,我试图声明BitVecExpr

for(int i =0; i < reg.size(); i++){
BitVecExpr[] reg.get(i) = new BitVecExpr[5];
}

2 个答案:

答案 0 :(得分:0)

我试图编写一个可能符合您要求的程序:

我无法将位向量数组声明为数据类型,因此我使用int数组作为数据类型创建了示例。

希望这会对你有所帮助。

public class Ajit {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        ArrayList<String> temp = new ArrayList<>();
        temp.add("G5");
        temp.add("G6");
        temp.add("G7");

        for(int i = 0; i < temp.size(); i++){
            System.out.println(temp.get(i));
        }

        Map<String, int[]> map = new HashMap<String, int[]>();

        for(int i = 0; i < temp.size(); i++){
            map.put(temp.get(i), new int[5]);
        }

        for(int i = 0; i < temp.size(); i++){
            System.out.println(map.get(i));
        }
    }
}

答案 1 :(得分:0)

    Map<String, Integer> map = new HashMap<String, Integer>();
    for(int i = 0; i < reg_net.size(); i++){
    BitVecExpr[] temp = new BitVecExpr[count];
    reg_net1.add(temp);
    map.put(reg_net.get(i), i);
    }

    for(int i=0; i < reg_net1.size(); i++){
    for(int j=0; j < count; j++){
        reg_net1.get(i)[j] = ctx.mkBVConst("temp"+ Integer.toString(i) +"["+ Integer.toString(j) + "]",1);
    }
    }

在第一个for循环中,我声明了BitVecExpr,在第二个for循环中,我正在初始化它..

以下verilog文件。     注册;     reg b;     reg c;     c = a&amp; B;

解析会给我:     Arraylist String reg_net ///将包含'a','b','c'     在1st for循环中,我将创建与reg_net大小相同的ArrayList BitVecExpr reg_net1。     在第二个for循环中,我将它们初始化为temp0,temp1,temp2

然后当我读到:c = a&amp; b; 我将使用reg_net1.get(reg_net.indexOf(“c”)); //哪个会给我c。     reg_net1.get(reg_net.indexOf(“c”))[0] = reg_net1.get(reg_net.indexOf(“a”))[0]&amp; reg_net1.get(reg_net.indexOf( “B”))[0];