首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在toString()方法之后使用equals()方法时的问题

在toString()方法之后使用equals()方法时的问题
EN

Stack Overflow用户
提问于 2020-10-11 06:14:23
回答 5查看 192关注 0票数 1

当我试图将两个字符串作为函数的输入并检查它们是否为字谜时,我得到了错误的输出。我写了以下代码。

代码语言:javascript
复制
    class Solution {
    public boolean isAnagram(String s, String t) {
        char sArray[] = s.toCharArray();
        char tArray[] = t.toCharArray();
        Arrays.sort(sArray);
        Arrays.sort(tArray);
        s = sArray.toString();
        t = tArray.toString();
        return s.equals(t);
        
    }
}

我所接受的示例输入是s = "anagram" and t = "nagaram"。如果选中,两个char数组将打印相同的值,即

代码语言:javascript
复制
sArray is: 
aaagmnr
tArray is: 
aaagmnr

但我的输出似乎是错误的。有谁能帮我一下,为什么我在toString()后使用toString()时会得到这样的结果?

EN

Stack Overflow用户

回答已采纳

发布于 2020-10-11 06:17:48

String的转换是不正确的,因为数组不覆盖toString()Object实现。

也就是说,没有理由将数组转换为String来比较它们。您可以使用Arrays.equals直接比较它们,这将返回真正的if both arrays contain the same number of elements, and all corresponding pairs of elements in the two arrays are equal

代码语言:javascript
复制
char sArray[] = s.toCharArray();
char tArray[] = t.toCharArray();
Arrays.sort(sArray);
Arrays.sort(tArray);
return Arrays.equals(sArray,tArray);
票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64301132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档