2014-12-07 81 views
-1

我想分裂读取文件并将其放入一个2d数组。该文件每个 行有3个字符串,用逗号分隔,总体思路是用排序算法来排列,但我无法分割字符串,它使我疯狂,任何人都可以帮忙。我似乎无法使用.split权利,我做错了什么

/** 
* 
* 
* @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()); 
     } 
    } 
} 
+3

你试图把一个'的String []'其中'String'预期。 ('sep'的组件类型为'String','String#split'的返回类型为String []') – August 2014-12-07 01:22:37

回答

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])); 
      } 
     } 

     // ... 
    } 
} 
+0

谢谢我认为整理出来了,欢呼声。 – bri 2014-12-07 01:37:27

-2

我不知道你在复苏,但.split将分裂成九月名单

这个代码是正确的

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

但这里是你的问题

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

这是1维阵列,但您需要2维阵列

答案:

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

这仅仅是修复.split问题

+1

'inputs.split(“,”)'不正确,不像你提到的那样。 – 2014-12-07 01:33:52

+0

欢呼声谢谢你的支持者 – bri 2014-12-07 01:37:51

相关问题