我正在尝试将索引号包含到我的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
答案 0 :(得分:1)
您使用的For-Each Loop将遍历集合,而不会暴露您手中元素的索引。
尝试以下方法:
//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());
}
答案 1 :(得分:0)
如果您希望坚持自己的循环-
// 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++;
}