很抱歉再次提出这个问题我已经在论坛中找到了很多。但是对于新的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"};
有人可以指导这个吗????
答案 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