拆分字符串不起作用。 (未使用的局部变量的值)

时间:2012-07-22 15:11:59

标签: java split filereader arrays

我想从csv文件中读取数据。 这是我的代码:

    public void readCSV(String path) {
    monologList = new ArrayList<Monolog>();
    String row = new String();

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

            while ((row = br.readLine()) != null) {
                String[] splitted = row.split("%");
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

我可以运行代码,但不会将任何数据保存到splitted []。 splitted []在调试期间甚至不显示。 Eclipse告诉我:“未使用分割的局部变量的值

我在其他项目中使用相同的代码,从“/ proc / net / arp”(Linux / Android)读取数据,它没有问题。

任何想法?

诚恳, 沃尔芬

编辑:已解决。 由于我在初始化之后没有使用splitted,所以eclipse在调试期间就删除了它。

4 个答案:

答案 0 :(得分:2)

1。保持范围 String[] splitted 在while循环之外

2。 String[] splitted 无法将值保留在while块之外,导致其范围结束。

答案 1 :(得分:1)

调试器往往不保存有关已启动但从未调用过的变量的数据。 在下一行中添加该数据的打印将解决问题。

答案 2 :(得分:0)

已经在while循环中声明和定义了已分割的变量。在外面宣布它。因为它不是这样,它仅限于while循环,所以不能在它之外找到它。这样做

String[] splitted;
int i = 0;
while ((row = br.readLine()) != null) {
     splitted[i++] = row.split("%");
}

答案 3 :(得分:0)

你应该尝试类似的东西:

List<String> myList = new ArrayList<String>();
while ((row = br.readLine()) != null) {
                myList.addAll(Arrays.asList(row.split("%")));
            }

然后,您可以利用列表中的内容。