【问题标题】:Void type not allowed here when using toCharArray?使用 toCharArray 时此处不允许使用 void 类型?
【发布时间】:2012-01-30 20:58:53
【问题描述】:

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

【问题讨论】:

    标签: java arrays string char void


    【解决方案1】:

    Arrays.sort 返回 void。您不能将其“值”传递给 Arrays.equal。它就地排序

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        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(秒); 返回 Arrays.equals(first, second); }

        【讨论】:

          猜你喜欢
          • 2015-01-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-15
          • 2023-03-04
          • 2014-05-28
          • 2015-01-08
          相关资源
          最近更新 更多