我正在尝试对Java进行编码,并将char添加到数组中。我的想法是比较两个字符,如果它们不同,则将它们添加到数组中,这是我的代码。
ArrayList<String> different = new ArrayList<>();
if (character.charAt(i) == (character.charAt(i+1)))
{
}
else
{
different.add(character.charAt(i+1));
}
但是,当我运行我的代码时,他们在第6行对我说“找不到适合于add(char)的合适方法”,因此我无法运行该代码。你能给我一些想法吗?非常感谢您的帮助。
答案 0 :(得分:1)
问题是您正在将char数据类型添加到String类型的arraylist中。您需要将代码更改为:
ArrayList<Character> different = new ArrayList<>();
if (character.charAt(i) != (character.charAt(i + 1))) {
different.add(character.charAt(i + 1));
}
答案 1 :(得分:0)
String::charAt
返回char
,而不是String
。因此,您的char
无法放入包含String
个对象的列表中。方钉,圆孔。
此外,char
是一种遗留类型,仅限于Unicode中定义的110,000个以上字符中的一半以下的子集,仅限于“基本平面”中的代码点。您应该学习将代码点作为数字使用,以便能够处理任何Unicode字符。
答案 2 :(得分:0)
当您声明List<String>
或ArrayList<String>
时,表示列表应包含类型String
或文字(双引号""
之间的内容。仅供参考,这称为通用类型)
使用String#valueOf(char c)
从String
创建新的char
。示例:-
//returns a type char
char c = character.charAt(i+1);
//use String#valueOf(char c) to create new `String` from variable `c`
different.add(String.valueOf(c));
** Oracle在泛型类型方面有很好的教程,您可以参考它。 https://docs.oracle.com/javase/tutorial/java/generics/index.html
答案 3 :(得分:0)
ArrayList<Character> different = new ArrayList<>();
if (character.charAt(i) == (character.charAt(i+1)))
{
}
else
{
different.add(character.charAt(i+1));
}
//////////////////
只需添加Wrapper类Character而不是String。