使用toCharArray时,这里不允许使用Void类型?

时间:2011-12-30 22:55:07

标签: java arrays string char void

此代码用于比较两个字符串中的字符,看它们是否相同。它通过获取字符串,将它们转换为char数组,对它们进行排序,然后进行比较来实现。

private boolean sameChars(String firstStr, String secondStr)
{
    return Arrays.equals(Arrays.sort(firstStr.toCharArray()), Arrays.sort(secondStr.toCharArray()));
}

编译此代码时,会突出显示(firstStr.toCharArray())并说'void' type not allowed here。导致错误的原因是什么?我将如何解决?

3 个答案:

答案 0 :(得分:7)

Arrays.sort()不返回数组。您需要将字符数组字符串存储到局部变量,然后对每个变量调用sort,然后最后使用Arrays.equals()比较两个数组:

char[] firstStrArr = firstStr.toCharArray()
char[] secondStrArr = secondStr.toCharArray()
Arrays.sort(firstStrArr);
Arrays.sort(secondStrArr);
return Arrays.equals(firstStrArr,secondStrArr);

答案 1 :(得分:1)

Arrays.sort返回void。你不能将它的'value'传递给Arrays.equal。它将排序

答案 2 :(得分:1)

http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html#sort%28char []%29

你应该引用两个char [] a,b; Array.sort a,Array.sort b并返回Array.equals a,b

    private boolean sameChars(String firstStr, String secondStr)
    {
        char[] first = firstStr.toCharArray();
        char[] second = secondStr.toCharArray();
        Arrays.sort(first);
        Arrays.sort(second);
        return Arrays.equals(first, second);
    }