不兼容的类型:char[] 无法转换为CharSequence。

huangapple go评论141阅读模式
英文:

incompatible types: char[] cannot be converted to CharSequence

问题

class Word {
    String data;
    boolean search(String key) {
        char[] arr = key.toCharArray();
        return data.contains(new String(arr));
    }
}

这段代码我已经编写好了,它应该会判断给定的字符串序列是否存在于给定的字符串中。但是它却给我显示了以下错误:

Main.java:8: 错误: 不兼容的类型: char[] 无法转换为 CharSequence
        return data.contains(arr);
                             ^
注: 有些消息已经简化; 重新以 -Xdiags:verbose 重新编译以获得完整输出
1 错误
英文:
class Word{
    String data;
    boolean search(String key)
    {
        char[] arr=key.toCharArray();
        return data.contains(arr);
    }
}

This code I have written must return if the sequence is present in the given String. But it is showing me the below error:

Main.java:8: error: incompatible types: char[] cannot be converted to CharSequence
        return data.contains(arr);
                             ^
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error

答案1

得分: 1

一个 char[] 数组不实现 CharSequence 接口,而 String.contains() 方法所需的输入类型就是该接口。

在这个示例中,你根本不需要使用 String.toCharArray() 方法。String 类型已经实现了 CharSequence 接口,因此你可以直接将 key 参数传递给 contains() 方法:

class Word{
    String data;
    boolean search(String key)
    {
        return data.contains(key);
    }
}
英文:

A char[] array does not implement the CharSequence interface, which is what the String.contains() method takes as input.

You don't need to use the String.toCharArray() method in this example at all. The String type implements the CharSequence interface, so you can pass your key parameter directly to contains():

class Word{
    String data;
    boolean search(String key)
    {
        return data.contains(key);
    }
}

huangapple
  • 本文由 发表于 2020年4月10日 10:39:08
  • 转载请务必保留本文链接:https://go.coder-hub.com/61133221.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定