Программа считывает файл * .csv в массив и печатает содержимое. Требовать номер индекса для печати - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь включить индексный номер в мою строку println.Я попытался создать цикл итерации, но он неправильно печатает индексный номер.

package main;
import test.address;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class Lab9_main {

    // Delimiters used in the CSV file
    private static final String COMMA_DELIMITER = ",";

    public static void main(String[] args) {

        BufferedReader br = null;

        try {

            // Reading the csv file
            br = new BufferedReader(new FileReader("addresses.csv"));

            // Create List for holding address objects
            ArrayList<address> addressList = new ArrayList<>();

            String line;

            // Read to skip the header
            br.readLine();

            // Reading from the second line
            while ((line = br.readLine()) != null) {
                String[] addressDetails = line.split(COMMA_DELIMITER);

                //Save the address details in address object
                if(addressDetails.length > 0 ) {
                    address addy = new address(addressDetails[0], addressDetails[1], addressDetails[2],
                            addressDetails[3], addressDetails[4], Integer.parseInt(addressDetails[5]));
                    addressList.add(addy);
                }
            }

            // Lets print the address List
            for(address e : addressList) {
                    System.out.println("The address details in the index....." + e + "....:" + e.getFirstName()
                            + "..." + e.getLastName() + "..." + e.getAdd() + "...." + e.getCit() + ".. " + e.getSt()
                            + "..." + e.getZip());

            }

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

        finally {
            try {
                br.close();
            } catch(IOException ie) {
                System.out.println("Error occurred while closing the BufferedReader");
                ie.printStackTrace();
            }
        }
    }
}

Вывод на печать в настоящее время выглядит следующим образом:

The address details in the index.....test.address@61bbe9ba....:John...Doe...120 jefferson st.....Riverside..  NJ...80751
The address details in the index.....test.address@610455d6....:Jack...McGinnis...220 hobo Av.....Phila..  PA...9119

Я хочу индексный номеротображается вместо адреса, например:

The address details in the index.....0....:John...Doe...120 jefferson st.....Riverside..  NJ...80751
The address details in the index.....1....:Jack...McGinnis...220 hobo Av.....Phila..  PA...9119

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Используемый вами цикл For-Each будет перебирать коллекцию, не раскрывая индекс элемента, который у вас в руке.

Попробуйте вместо этого:

//Lets print the Employee List
for(int i = 0; i < addressList.size(); i++) {
        address e = addressList.get(i);
        System.out.println("The address details in the index....." + i + "....:" + e.getFirstName()
            + "..." + e.getLastName() + "..." + e.getAdd() + "...." + e.getCit() + ".. " + e.getSt()
            + "..." + e.getZip());

}
0 голосов
/ 02 апреля 2019

Если вы хотите придерживаться своего цикла for -

 // Lets print the address List

     // initialize your index number 

         int i=0;

            for(address e : addressList) {
                    System.out.println("The address details in the index....." + i + " "  + e + "....:" + e.getFirstName()
                            + "..." + e.getLastName() + "..." + e.getAdd() + "...." + e.getCit() + ".. " + e.getSt()
                            + "..." + e.getZip());

     // increment your index and let it roll

              i++;

            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...