这只是我在故障排除时遇到问题的代码的一部分。
static int checkConcat(String number) {
TreeSet<Integer> a = new TreeSet<Integer>();
for(int i=0; i<number.length(); i++) {
a.add(Integer.parseInt(number.charAt(i)));
}
}
我得到的错误是:
错误:类型不兼容:字符无法转换为字符串
代码有什么问题,在这种情况下如何解决它?
您可以轻松地将字符转换为字符串。
char aCharacter = 'c';
String aCharacterAsString = String.valueOf(aCharacter);
所以在你的情况下:
a.add(Integer.parseInt(String.valueOf(number.charAt(i))));
Integer.parseInt(String s)
的参数类型为 String
,而不是 number.charAt(i)
返回的char
。
转换为String
:
a.add(Integer.parseInt("" + number.charAt(i)));
字符是char
,而不是String
。尽管您可以使用下面描述的方法从char
构造单字符字符串,但应使用不同的 API 逐位解析数字:
for(int i=0; i<number.length(); i++) {
a.add(Character.digit(number.charAt(i), 10));
}
要在 Java 中从char
构造单字符字符串,请使用String.valueOf
方法:
String singleDigit = String.valueOf(number.charAt(i));
charAt
返回字符串的一个字符,因此返回类型char
不string
使用String.valueOf
方法转换为字符串:
String.valueOf(number.charAt(i))
或者不要使用Integer.parse
只是从字符中减去'0'
以将其转换为数字值。这将是转换个位数值的更简单、更有效的方法。
number.charAt(i) -'0'