此代码用于比较两个字符串中的字符,看它们是否相同。它通过获取字符串,将它们转换为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
。导致错误的原因是什么?我将如何解决?
答案 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); }