Java 字符串数组包含重复值,请删除并打印该数组
很抱歉再次问这个问题,我在论坛上发现了很多。但是作为java新手,我例外的是解释代码,我用我的方式尝试了,但不起作用。我在没有任何默认方法的情况下尝试了,代码必须适用于这个程序 代码: 但我不认为输出是Java 字符串数组包含重复值,请删除并打印该数组,java,arrays,string,Java,Arrays,String,很抱歉再次问这个问题,我在论坛上发现了很多。但是作为java新手,我例外的是解释代码,我用我的方式尝试了,但不起作用。我在没有任何默认方法的情况下尝试了,代码必须适用于这个程序 代码: 但我不认为输出是字符串数组是===>{“amma”,“senthil”,“kumar”} 有人能在这方面提供指导吗???请将if(arr[i]==arr[j])改为if(arr[i].equals(arr[j]) 在比较字符串对象时,应使用equals()方法,而不是“==”这是不正确的,因为这是在进行内存比较:
字符串数组是===>{“amma”,“senthil”,“kumar”}代码>
有人能在这方面提供指导吗???请将if(arr[i]==arr[j])
改为if(arr[i].equals(arr[j])
在比较字符串对象时,应使用equals()
方法,而不是“==”
这是不正确的,因为这是在进行内存比较:
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;
}
if(arr[i]==arr[j])替换为if(arr[i].equals(arr[j]),因为==匹配对象的hashcode,而equals()方法在字符串中被重写,它逐字符匹配字符串字符,所以使用equals()方法而不是==运算符for(string string string:arr){System.out.println(“string array are=>”+string);}
如果使用IDE,试着调试这段代码,看看当它执行上述代码时会发生什么。仅供参考,如果你想专门处理没有重复项的项,你可以看看javaSet
class。@vikingsteve我的目标是在不使用默认方法(如equals、contain、Set、,树集…等等…如何避免和克服我的解决方案不,我正在尝试没有IDE中可用的默认方法。因此,如果没有Equals,我如何比较Java中的值将其转换为char[]
并比较每个字符?奇怪的设计选择,不使用.equals()
我的目标是不使用默认方法(如equals、contain…如何避免和超越我的解决方案)而实现我的目标您可以使用string getChars()方法,而不是将每个字符与另一个字符串字符匹配
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;
}