字符串数组包含重复值并删除并打印数组

时间:2014-09-10 13:27:44

标签: java arrays string

很抱歉再次提出这个问题我已经在论坛中找到了很多。但是对于新的java am Ex Exting with with explain code我尝试了我的方式但它没有工作.i尝试没有任何默认方法代码必须为此工作程序

代码:

    package javatest;

public class Test03sep {

    public static void main(String args[]) 
    {
                        //0   1            2    3
        String []val={"amma","senthil","kumar","amma"};
        removeduplicate(val);
    }
    static void removeduplicate(final String []arr)
    {

        String temp="";
             for (int i = 0; i < arr.length; i++) 
             {
            for (int j = i+1; j < arr.length; j++) 
             {
                System.out.print("condition are:");
                 System.out.println(arr[i]==arr[j]);

                 if(arr[i]==arr[j])
                     {
                     temp=arr[i];
                     arr[i]=arr[j];
                     arr[j]=temp;

                     }

        }
            for (String string : arr) {
                System.out.println("string array are==>"+string);
            }
}
    }
}

输出:

condition are:false
condition are:false
condition are:true
string array are==>amma
string array are==>senthil
string array are==>kumar
string array are==>amma
condition are:false
condition are:false
string array are==>amma
string array are==>senthil
string array are==>kumar
string array are==>amma
condition are:false
string array are==>amma
string array are==>senthil
string array are==>kumar
string array are==>amma
string array are==>amma
string array are==>senthil
string array are==>kumar
string array are==>amma

但我接受的输出是String array are===>{"amma","senthil","kumar"};

有人可以指导这个吗????

3 个答案:

答案 0 :(得分:0)

请将if(arr[i]==arr[j])更改为if(arr[i].equals(arr[j]))

在比较字符串对象时,您应该使用equals()方法而不是"=="

答案 1 :(得分:0)

这是不正确的,因为这是在进行内存比较:

                 if(arr[i]==arr[j])
                 {
                   temp=arr[i];
                   arr[i]=arr[j];
                   arr[j]=temp;
                 }

将此代码更改为进行值比较:

                 if(arr[i].equals(arr[j]))
                 {
                   temp=arr[i];
                   arr[i]=arr[j];
                   arr[j]=temp;

                 }

答案 2 :(得分:0)

if(arr [i] == arr [j])替换为if(arr [i] .equals(arr [j]))因为==匹配对象的哈希码,而equals()方法被覆盖在字符串中它匹配char字符串char,所以使用equals()方法而不是== operator