2011-12-30 67 views
2

此代碼旨在比較兩個字符串中的字符並查看它們是否相同。它通過獲取字符串,將它們轉換爲char數組,然後對它們進行排序,然後對它們進行比較。使用toCharArray時不允許在這裏使用void類型?

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。什麼導致了錯誤,我將如何解決它?

回答

7

Arrays.sort()不返回數組。你將需要存儲的字符數組字符串局部變量,然後在每個變量排序打電話,然後最後用Arrays.equals()比較兩個數組:

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

Arrays.sort返回void。你不能將它的'值'傳遞給Arrays.equal。它排序到位

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); 
    } 
相關問題