我似乎无法正确使用.split,我做错了什么

时间:2014-12-07 01:20:02

标签: java

我正在尝试拆分读入文件并将其放入二维数组中。该文件每个有3个字符串       用逗号分隔的行,总体思路是用排序算法来安排它,但我不能分割字符串,它让我疯了,任何人都可以帮忙。

/**
 * 
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
import java.util.*;
import java.lang.String;
import java.util.ArrayList;
import java.util.Arrays;
public class Example2{
    public static void main(String args[]){

        FileIO reader = new FileIO();
        Scanner scan = new Scanner(System.in);

        String[] inputs = reader.load("C:/ratings.csv");
        String[] sep = new String[inputs.length];

        for(int i=0;i<inputs.length;i++){
           sep[i]=inputs.split(",");
           System.out.println(sep[i]);
        }

        try{
            reader.save("C://somefile.csv",inputs);
        }catch (Exception e){
            System.out.println(e.getClass());
        }
    }
}

2 个答案:

答案 0 :(得分:0)

splitString类中的方法,inputs是字符串数组。预计会有阵列访问。您可能只是忘了在代码中添加[i]。此外,由于您在循环中拆分字符串,因此您正在创建一个二维字符串数组,这意味着sep应该是String[][]。跟上这个吧。

public class Example2{
    public static void main(String args[]){

        FileIO reader = new FileIO();
        Scanner scan = new Scanner(System.in);

        String[] inputs = reader.load("C:/ratings.csv");
        String[][] sep = new String[inputs.length][];

        for(int i=0;i<inputs.length;i++){
             sep[i]=inputs[i].split(",");
             System.out.println(Arrays.toString(sep[i]));
           }
        }

        // ... 
    }
}

答案 1 :(得分:-2)

我不知道你回来了什么,但.split会将sep分成一个列表

这段代码是正确的

sep[i]=inputs.split(",");

但这是你的问题

String[] sep = new String[inputs.length];

这是一维数组但你需要二维数组

答案:

String[][] sep = new String[inputs.length][];

这只是解决.split问题