我正在使用以下代码,这将在数组的每个位置上给出一个重复的值,因此建议我如何做
String sCurrentLine;
String username[] = new String[30];
String Arrival[] = new String[30];
String Departure[] = new String[30];
int var = 0, var2;
BufferedReader br = new BufferedReader(new FileReader("E:\\Shubham Projects\\Input.txt"));
while ((sCurrentLine = br.readLine()) != null) {
String[] information = sCurrentLine.split(" ");
var2 = information.length + var;
for (int i = var; i < var2; i++) {
System.out.println(i);
username[i] = information[0];
Arrival[i] = information[1];
Departure[i] = information[2];
var++;
}
}
for (int i = 0; i < username.length; i++)
System.out.println(username[i] + " " + Arrival[i] + " " + Departure[i]);输入:
杰伊10:15 11:10 Jai 10:10 11:00 维鲁10:10 11:00 维鲁16:30 18:45 杰12:05 12:30 维鲁12:30 13:25 维鲁12:45 13:25 杰17:25 18:01
输出:
杰伊10:15 11:10 杰伊10:15 11:10 杰伊10:15 11:10 Jai 10:10 11:00 Jai 10:10 11:00 Jai 10:10 11:00 维鲁10:10 11:00 维鲁10:10 11:00 维鲁10:10 11:00 维鲁16:30 18:45 维鲁16:30 18:45 维鲁16:30 18:45 杰12:05 12:30 杰12:05 12:30 杰12:05 12:30 维鲁12:30 13:25 维鲁12:30 13:25 维鲁12:30 13:25 维鲁12:45 13:25 维鲁12:45 13:25 维鲁12:45 13:25 杰17:25 18:01 杰17:25 18:01 杰17:25 18:01 空空空 空空空 空空空 空空空 空空空 空空空
发布于 2015-09-12 13:55:02
您可以使用不允许重复的Set数据结构。
尝试:
Set<String> resultSet = new HashSet<String>(Arrays.asList(username));resultSet将有独特的字符串。
发布于 2015-09-12 15:03:31
内部for循环是导致问题的原因,因为您要从每一行抓取三次信息。
var2 = information.length + var;
for (int i = var; i < var2; i++) {
System.out.println(i);
username[i] = information[0];
Arrival[i] = information[1];
Departure[i] = information[2];
var++;
}例如:
杰伊10:15 11:10
当您阅读这一行时,var2将计算为3(假设var为0)。现在它将在for循环中运行三次,给出重复的条目。
Shriram的解决方案将修复此问题,Amila的响应将修复输入文件中重复条目的问题。
发布于 2015-09-12 13:55:50
使用set并打印结果,因为Set不允许重复。
使用以下逻辑
int count = 0;
while ((sCurrentLine = br.readLine()) != null) {
String[] information = sCurrentLine.split(" ");
// for (int i = 0; i < information.length; i++) {
username[count] = information[0];
Arrival[count] = information[1];
Departure[count] = information[2];
// }
count++;
}打印输出后,剩下的空值为空,但是您已经用30初始化了字符串数组。使用动态数组的集合类。我还说过要利用Set来避免重复
https://stackoverflow.com/questions/32539577
复制相似问题