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