在Java中的循环外获取数组

时间:2018-08-02 07:19:16

标签: java arrays loops

我试图将我的数组移到while循环之外,请参见下面的代码:

    String csvFile = "my.csv";
    BufferedReader br = null;
    String ligne = "";
    String cvsSplitBy = ";";
    try {
        br = new BufferedReader(new FileReader(csvFile));
        while ((ligne = br.readLine()) != null) {
            String [] conseillers = ligne.split(cvsSplitBy);
            System.out.println("Conseiller [prenom= " + conseillers[0] + " , nom=" + conseillers[1] + ", fonction = "+ conseillers[2] +"]");
        }
      } catch (FileNotFoundException e) {
          e.printStackTrace();
      }

 //   System.out.println(conseillers.toString());

          for(String conseiller : conseillers){
            System.out.println(conseiller.toString());
          }

但是我有一条错误消息,说:

  

错误:找不到符号

     

符号:可变conseillers

1 个答案:

答案 0 :(得分:1)

在循环外声明数组,因为如果在循环内声明变量,则该变量仅存在于循环中,并且在循环结束后立即删除该变量。

代码应为:

String csvFile = "my.csv";
BufferedReader br = null;
String ligne = "";
String cvsSplitBy = ";";
String[] conseillers;

try {
    br = new BufferedReader(new FileReader(csvFile));

    while ((ligne = br.readLine()) != null) {
        conseillers = ligne.split(cvsSplitBy);
        System.out.println("Conseiller [prenom= " + conseillers[0] + " , nom=" + conseillers[1] + ", fonction = "+ conseillers[2] +"]");
    }

} catch (FileNotFoundException e) {
    e.printStackTrace();
}

  //   System.out.println(conseillers.toString());

for(String conseiller : conseillers){
   System.out.println(conseiller.toString());
}