所以我有以下代码:
while((line = reader.readLine()) != null) {
String[] row = line.split(",");
this.table.add(row);
使用以下方式启动this.table:
ArrayList table = new ArrayList();
然后当我试图在表格中获得一行时,如下所示:
for(int i=0; i<table.size(); ++i){
for(int j=0; j<table.get(i).length; ++j) {
//some code
}
它(强调get(i).length;并给我一个错误,说它找不到符号。符号:length location:class Object。
怎么了? string.split()不返回数组吗?如果是,为什么我不能使用任何数组类方法/变量?
谢谢!
答案 0 :(得分:2)
ArrayList不是数组列表,它是由数组支持的列表。
但是你可以使用泛型来使它成为数组列表。
List<String[]> table = new ArrayList<String[]>();
然后你的代码应该可以工作。
答案 1 :(得分:0)
您应该使用java generics
List<String[]> table = new ArrayList<String[]>();
然后,您将获得String[]
个get(i)
次调用的实例。另请注意使用List
接口声明表变量。尽可能使用适合您需要的超级接口,而不是实现类。
此外,从Java 1.5开始,您可以使用更直观的语法(当然,这假设您使用之前推荐的泛型):
for(String[] processedRow : table){
for(String processedField : processedRow) {
//some code
}
}
答案 2 :(得分:0)
您需要输入清单:
List<String[]> table = new ArrayList<String[]>();
然后java编译器会知道String[]
存储在列表中。
答案 3 :(得分:0)
ArrayList table = new ArrayList();
// change with:
ArrayList<String[]> table = new ArrayList();