英文:
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);
}
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论