2015-09-08 2 views
-1

У меня есть этот код, чтобы прочитать и распечатать файл .txtсохранить TXT на массив JAVA

public static void main(String [] arg) { 
    ArrayList<String> lista = new ArrayList<String>(); 
     try { 
       Scanner scan = new Scanner(new File("c:\\Ps.txt")); 
       while(scan.hasNext()) { 
        lista.add(scan.nextLine()); 
       } 
       scan.close(); 

     } 
     catch(Exception e) { 
       e.printStackTrace(); 
     } 

     String items[] = lista.toArray(new String[lista.size()]); 
     for(String item : items) { 
       System.out.println(item); 



     } 
    } 

формат TXT-файл состоит в следующем: имя, 5,3,6,8,9

имя студента и 5 классов, мне нужно поместить каждый файл в массив, чтобы манипулировать им

мне нужна помощь, чтобы поместить их в массив

+1

'lista.add (...);' Разве это не добавление предметов в arraylist ...? Я не понимаю вашу проблему здесь. –

+0

Как я могу поместить подобное в массив, как array (0) = name, array (1) = 5 и т. Д. –

+0

Должно быть 'hasNextLine' – Dici

ответ

0

Во-первых, вы должны разделить каждую строку. Вы можете сделать это с помощью метода String.split(String regex) с регулярным выражением того, что отделяет каждый объект:

String[] splits = item.split(","); //item's properties are separated by commas 

Это возвращает String массива с «именем», «5», «3», «6», «8» и "9".

Если вы хотите, чтобы преобразовать классы в int с, вы можете сделать это с помощью Integer.parseInt(String integer) метода:

for (int i = 1; i < splits.length; i++) { // i = 1 because the index 0 is for the name 
    grades.add(Integer.parseInt(splits[i])); 
} 

PD: Вы можете непосредственно сделать это с Scanner, используя его next() (наименование) и nextInt() (для классов). Чтобы установить разделитель, используйте useDelimiter(String pattern).

0

Вы можете использовать разделение строки класса() метод, чтобы получить оценку и метки в виде массива строк, как показано ниже:

 for(String item : items) { 
      String[] details = item.split(","); 
    } 
0
public static void main(String [] arg) { 
    ArrayList<String[]> lista = new ArrayList<String[]>(); 
    try { 
     Scanner scan = new Scanner(new File("c:\\Ps.txt")); 
     while(scan.hasNext()) { 
       // This will split the line into a 6 element string array. 
       // { name, grade1, grade2, grade3, grade4, grade5 } 
       lista.add(scan.nextLine().split(",", -1)); 
     } 
     scan.close(); 
    } 
    catch(Exception e) { 
      e.printStackTrace(); 
    } 
} 

Вы можете получить доступ к имени сорта принадлежат, используя ...

lista.get(0)[0] 

Вы можете получить доступ к 4 класса из записи, используя ...

Integer.parseInt(lista.get(0)[4]); 

Конечно, вам нужно будет обеспечить правильное форматирование файла до запуска этого кода, поскольку он не проверяет каждую строку для форматирования.

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