声明数组在whileloop之外使用它

时间:2016-03-18 08:35:02

标签: java arrays eclipse while-loop bufferedreader

public void ReadCVS() {
    BufferedReader br = null;
    String line = "";
    String cvsSplitBy = ",";
    int nbA,nbB,nbC;
    nbA=nbB=nbC=0;
    String lval="";
    String test;
    double x = 25;
    double y = 100;
    double z = 200;
    double lp1 = 0;
    try {
        ArrayList<String> l1 = new ArrayList<String>();
        br = new BufferedReader(new FileReader(this.filePath));

        while ((line = br.readLine()) != null) {
            //System.out.println(line);
            // use comma as separator
            String[] tempData = line.split(cvsSplitBy);
            allDatakey.add(tempData[0]);
            allDataValue.add(tempData[1]);

            double j = parseDouble(tempData[1]);
}

//我想在这里使用j

      if((j>x)&&(j<y)){

        test ="A";
        if(!lval.equals("A")){
        l1.add(test+String.valueOf(nbA));
        nbA++;
        }
        lval="A";

在这段代码中,双j在while循环中,我的问题是:如何声明它在whillloop缓冲区之外使用它....

2 个答案:

答案 0 :(得分:1)

试试这个:

try {
    ArrayList<String> l1 = new ArrayList<String>();
    br = new BufferedReader(new FileReader(this.filePath));
    double j = 0.0;          //shift your J to Outside of the Loop.
    while ((line = br.readLine()) != null) {
        //System.out.println(line);
        // use comma as separator
        String[] tempData = line.split(cvsSplitBy);
        allDatakey.add(tempData[0]);
        allDataValue.add(tempData[1]);
        //change your parseDouble to Double.parseDouble as I Do Here.

        j = Double.parseDouble(tempData[1]); //Initialize Your J here
    // .......
}

注意jwhile循环之外声明并在循环内初始化,并且您可以再次使用while之外的任何内容。

答案 1 :(得分:1)

可以在此处看到声明数组:How do I declare and initialize an array in Java?

如果你想在while循环之外使用tempData变量,你也可以将数组复制到一个新变量。

如果您只想将变量J置于外部,请执行以下操作:

double j = 0.0;
while (....) {
   j = parseDouble(tempData[1]
}