[英]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.