从string.split()java获取数组

时间:2012-10-21 18:57:44

标签: java arrays

所以我有以下代码:

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()不返回数组吗?如果是,为什么我不能使用任何数组类方法/变量?

谢谢!

4 个答案:

答案 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();