这只是我的代码的一部分,我有问题疑难解答。
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无法转换为String
代码有什么问题,如何在这种情况下解决?
答案 0 :(得分:1)
您可以轻松地将char转换为String。
char aCharacter = 'c';
String aCharacterAsString = String.valueOf(aCharacter);
所以在你的情况下:
a.add(Integer.parseInt(String.valueOf(number.charAt(i))));
答案 1 :(得分:0)
单个字符为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));
答案 2 :(得分:0)
Integer.parseInt(String s)
的参数类型为String
,而不是char
返回的number.charAt(i)
。
转换为String
:
a.add(Integer.parseInt("" + number.charAt(i)));
答案 3 :(得分:0)
charAt
返回字符串的一个字符,因此返回类型为char
而非string
转换为字符串时使用String.valueOf
方法:
String.valueOf(number.charAt(i))
或者不要使用Integer.parse
只从字符中减去'0'
以将其转换为数字值。这将是一种更简单,更有效的转换单个数字值的方法。
number.charAt(i) -'0'