2014-12-07 2 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

ответ

0

split представляет собой метод в String классе, и inputs представляет собой массив строк. Там ожидается доступ к массиву. Вы, наверное, просто забыли добавить [i] в код. Кроме того, поскольку вы разделяете строку в цикле, вы создаете 2D-массив строк, что означает, что 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

-2

Я не знаю, что вы возвращения, но .split разделится сен в список

этот код является правильным

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

но вот ваша проблема

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

это одномерная матрица, но вам нужна 2-мерная матрица

Ответ:

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

это просто исправить .split проблему

+1

'inputs.split (", ")' неверно, в отличие от того, что вы упомянули. –

+0

благодарит за anwser – bri

Смежные вопросы