错误:不兼容的类型:char无法转换为String - Java

时间:2018-01-26 13:10:37

标签: java

这只是我的代码的一部分,我有问题疑难解答。

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

代码有什么问题,如何在这种情况下解决?

4 个答案:

答案 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'