2011-05-23 2 views
2

У меня есть текстовый файл, содержащий информацию пользователя, в виде строки, разделенной запятыми. Я использовал комбинацию экспериментов и исследований, чтобы попытаться разделить каждую строку на отдельные части информации (с помощью функции split), которые можно сохранить в массиве, а затем выполнить поиск. С кодом у меня есть каждое имя и имя пользователя в текстовом файле, которое повторяется 4 раза каждый, как я не понимаю. Все, что мне удалось сделать, это запутать себя дальше, но мне нужно только вытащить каждую строку из текстового файла, разделить его на четыре отдельные части информации и сохранить их в памяти в некотором роде для поиска. Код у меня есть;Заполнение многомерного массива из текстового файла

package assignment; 


import java.io.*; 

public class readUser { 
public void read() 
{ 
    try{ 

     FileInputStream propertyFile = new FileInputStream("AddUser.txt"); 

     DataInputStream input = new DataInputStream(propertyFile); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(input)); 

     String line; 

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

      String[] items = line.split(","); 
      String[][] usersArray = new String [5][2]; 
      int i; 
      for (String item : items) { 

       for (i = 0; i<items.length; i++){ 
        if (i == 0) { 
         System.out.println("Name: " + items[i]); 
        } else if (i == 1) { 
         System.out.println("Username: " + items[i]); 


       } 
      } 
      } 
      //System.out.println(line); 



     } 
     input.close(); 
    } 
    catch (Exception e){ 

     System.err.println("Error: " + e.getMessage()); 
    } 
     } 

} 

Спасибо за любые советы по этому

ответ

5

Посмотрите на развалу кода и проблема становится ясно:

for each line in property file (while loop): 
    for each item in line: 
     for each item in line: 
      if item 0 print username 
      else if item 1 print username 
      endif 
     end loop 
    end loop 
end loop 

Ваш код в основном итерация по списку items дважды. Имейте в виду, что в Java следующие два фрагмента кода эквивалентны: в них они выполняют итерацию по значениям массива или коллекции.

for (String item : items) {...} 

Б

for (int i = 0; i < items.length; i++) { 
    String item = items[i]; 
    .... 
} 
+3

+1, для псевдокоде и на самом деле не писать код для плаката. – camickr

+0

для (i = 0; i Bhushan

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