我正在尝试拆分读入文件并将其放入二维数组中。该文件每个有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());
}
}
}
答案 0 :(得分:0)
split
是String
类中的方法,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问题