繁体   English   中英

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

[英]Splitting String doesn't work. (value of local variable not used)

我想从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在调试期间就删除了它。

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

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

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

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

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

你应该尝试类似的东西:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM