0

所以我有以下代码:

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; 并给我一个错误,说它找不到符号。符号:长度位置:类对象。

怎么了?string.split() 不返回数组吗?如果是这样,为什么我不能使用任何数组类方法/变量?

谢谢!

4

4 回答 4

2

ArrayList 不是数组列表,它是由数组支持的列表。

但是您可以使用泛型将其设为数组列表。

List<String[]> table = new ArrayList<String[]>();

然后你的代码应该可以工作。

于 2012-10-21T18:59:55.737 回答
0

你应该使用java泛型

List<String[]> table = new ArrayList<String[]>();

然后你会得到调用String[]的实例。get(i)还要注意使用List接口来声明表变量。尽可能使用适合您需要的超级接口,而不是实现类。

此外,从 Java 1.5 开始,您可以使用更直观的语法(当然,这假设您使用之前推荐的泛型):

for(String[] processedRow : table){
    for(String processedField : processedRow) {
        //some code    
    }
}
于 2012-10-21T19:00:18.410 回答
0

您需要输入您的列表:

List<String[]> table = new ArrayList<String[]>();

那么java编译器会知道这些String[]都存储在你的列表中。

于 2012-10-21T19:00:27.743 回答
0
ArrayList table = new ArrayList();
//  change with:
ArrayList<String[]> table = new ArrayList();
于 2012-10-21T19:01:00.753 回答