2013-11-29 4 views
0

Я читаю txt-файл, который содержит по одному слову в каждой строке, удаляя слово из не-алфавитно-цифровых символов и сохраняя результаты в список массивов.Не удалось вывести содержимое ArrayList

public class LeeArchivo 
{ 

public static void main(String args[]) throws IOException 
{ 
    try 
    { 

     BufferedReader lector = null; 
     List<String> matrix = new ArrayList<String>(); 

     lector = new BufferedReader(new FileReader("spanish.txt")); 
     String line = null; 

     while((line = lector.readLine())!=null) 
     { 
      //matrix.add(line); 
      matrix.add((line.split("[^a-zA-Z0-9']").toString()));  
     } 

     System.out.println(matrix); 
     System.out.println(matrix.size()); 
    } catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 

} 
} 

, когда я пытаюсь напечатать содержимое ArrayList все, что я получаю адрес памяти Каждая строка объекта. Самое смешное, если я не разделяю линию, то есть: Я просто matrix.add (строка) Я получаю строки Хорошо. Я пробовал StringBuilders, Iterators, .toString, но ничего не работает. Может кто-нибудь помочь мне понять, что здесь происходит? Спасибо.

+0

Почему дополнительный набор скобок внутри методы добавления? – Rob

+0

@Rob извините, мой плохой. – augustov

ответ

0

Вызов line.split("[^a-zA-Z0-9']") возвращает массив строк. Не строка. Итак, вы добавляете в список массивов не экземпляр String, а результат вызова метода string array toString() - адрес памяти объекта массива String.

Если вам необходимо получить всю строку после расщепления, вы должны объединить все элементов массива, например:

while((line = lector.readLine())!=null) { 

    String[] arr = line.split("[^a-zA-Z0-9']"); 
    String res = ""; 

    for(String s : arr) { 
     res += s; 
    } 

    matrix.add(res);  
} 
+0

Спасибо, я понимаю сейчас. но если я не вызываю вызов метода toString(), я получаю ошибку в matrix.add() Says: метод add (String) в типе List не применим для аргументов (String []) Как я могу пойдите об этом? – augustov

+0

Thak вы это делаете. – augustov

+1

Почему toString() все еще после раскола? – Rob

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