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: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

输出:

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++;
}