Java 如何从字符串数组中删除重复值
我正在使用下面的代码,这在数组的每个位置都给了我一个重复的值 所以建议我怎么做Java 如何从字符串数组中删除重复值,java,Java,我正在使用下面的代码,这在数组的每个位置都给了我一个重复的值 所以建议我怎么做 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:\\Shu
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]);
stringscurrentline;
字符串用户名[]=新字符串[30];
字符串到达[]=新字符串[30];
字符串离开[]=新字符串[30];
int-var=0,var2;
BufferedReader br=新的BufferedReader(新文件阅读器(“E:\\Shubham Projects\\Input.txt”);
而((sCurrentLine=br.readLine())!=null){
字符串[]信息=sCurrentLine.split(“”);
var2=information.length+var;
for(int i=var;i
输入:
Jai 10:15 11:10Jai 10:10 11:00
Veeru 10:10 11:00
Veeru 16:30 18:45
Jai 12:05 12:30
Veeru 12:30 13:25
Veeru 12:45 13:25
Jai 17:25 18:01 输出: Jai 10:15 11:10
Jai 10:15 11:10
Jai 10:15 11:10
Jai 10:10 11:00
Jai 10:10 11:00
Jai 10:10 11:00
Veeru 10:10 11:00
Veeru 10:10 11:00
Veeru 10:10 11:00
Veeru 16:30 18:45
Veeru 16:30 18:45
Veeru 16:30 18:45
Jai 12:05 12:30
Jai 12:05 12:30
Jai 12:05 12:30
Veeru 12:30 13:25
Veeru 12:30 13:25
Veeru 12:30 13:25
Veeru 12:45 13:25
Veeru 12:45 13:25
Veeru 12:45 13:25
Jai 17:25 18:01
Jai 17:25 18:01
Jai 17:25 18:01
空值
空值
空值
空值
空值
空
您可以使用
设置
不允许重复的数据结构
尝试:
Set resultSet=newhashset(Arrays.asList(username));
resultSet
将具有唯一的字符串。使用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++;
}
int count=0;
而((sCurrentLine=br.readLine())!=null){
字符串[]信息=sCurrentLine.split(“”);
//for(int i=0;i
打印输出后,剩余的空值为零,但您使用30初始化了字符串数组。为动态数组使用集合类。我还说过,使用Set来避免重复的内部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++;
}
var2=information.length+var;
for(int i=var;i
例如:
斋10:15 11:10
当您阅读这一行时,var2将计算为3(假设var为0)。现在,它将在for循环中运行三次,为您提供重复的条目
Shriram的解决方案将解决此问题,Amila的响应将解决输入文件中重复条目的问题。您能显示您的
input.txt
内容吗?Jai 10:15 11:10 Jai 10:10 11:00 Veeru 10:10 11:00 Veeru 16:30 18:45 Jai 12:05 12:30 Veeru 12:30 13:25 Veeru 12:45 13:25 Jai 17:25 18:01那么问题出在哪里??输入和输出匹配对吗?不,你在哪里检查副本,输入和输出也匹配对了?请再次检查帖子,因为我错误地上传了输入文件而不是输出。。。现在你能给我解决办法吗@Suresh是一个很好的解决方案,但是你能告诉我,当前代码有什么问题吗?很好的解决方案,但是你能告诉我,当前代码有什么问题吗?问题是代码在我在代码中使用的所有数组中打印重复的值
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++;
}