【发布时间】:2020-12-04 14:51:54
【问题描述】:
我有一个呼叫记录数组,我想将呼叫处置为“DNC”的记录存储在不同的数组中。该函数打开一个 csv 文件并将整个文件读入对象数组并设置属性。原始数组包含 680 条对象记录。我的对象设置器后面有一个 if 语句,如果 userArray[count].getDisposition == "DNC" 然后将此记录添加到我的新数组 DNC_List[dnc_count] 并增加 dnc_count++。
dnc_count 被初始化为 0,在进程结束时,它仍然为 0。我的原始数组中有 4 条记录具有“DNC”作为属性。谁能告诉我我的代码有什么问题以及为什么当处置为 DNC 时它无法识别?
public static void myCSVReader(String filename) {
String path = "C:\\Users\\My_Username\\Downloads\\" + filename;
file_path = path;
BufferedReader reader = null;
String line = "";
String csvSplitBy = ",";
int count = 0;
String fullName, U_ID;
int dnc_count = 0;
User userArray[] = new User[1000];
User[] DNC_List = new User[1000];
System.out.println("Starting csv reader");
try {
reader = new BufferedReader(new FileReader(path));
while ((line = reader.readLine()) != null) {
String[] s = line.split(csvSplitBy);
fullName = s[13] + " " + s[15];
U_ID = s[44];
userArray[count] = new User(s[1], s[2], s[0], fullName, U_ID);
userArray[count].setDisposition(s[2]);
userArray[count].setNumber(s[1]);
userArray[count].setName(fullName);
userArray[count].setID(U_ID);
if(userArray[count].getDisposition() == "DNC" || userArray[count].getDisposition() == "CS"){
DNC_List[dnc_count].setKey(String.valueOf(dnc_count));
DNC_List[dnc_count].setDisposition("DNC");
DNC_List[dnc_count].setName(userArray[dnc_count].getName());
DNC_List[dnc_count].setID(userArray[dnc_count].getID());
dnc_count++;
}
count++;
User user = new User(s[1], s[2], s[0], fullName, U_ID);
user.setDisposition(s[2]);
user.setNumber(s[1]);
user.setName(fullName);
user.setID(U_ID);
}
} catch (Exception e) {
e.printStackTrace();
}
// Prints out the array index, name, disposition, and phone_number
System.out.println("\n\nUser array: \n");
for (int i = 0; i < userArray.length; i++) {
if (userArray[i] != null) {
System.out.println(i + ": " + userArray[i].getName() + "\t | Dispo = " + userArray[i].getDisposition()
+ "\t | Phone = " + userArray[i].getNumber());
}
}
System.out.println("\nDNC_COUNT = " + dnc_count);
for (int i = 0; i < dnc_count; i++) {
System.out.println(DNC_List[i] + "\n");
}
}
【问题讨论】:
-
使用
equals而不是==来比较字符串:"DNC".equals( userArray[count].getDisposition())