错误:不兼容的类型:字符无法转换为字符串 - 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 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返回字符串的一个字符,因此返回类型charstring 使用String.valueOf方法转换为字符串:

String.valueOf(number.charAt(i))

或者不要使用Integer.parse只是从字符中减去'0'以将其转换为数字值。这将是转换个位数值的更简单、更有效的方法。

number.charAt(i) -'0'

最新更新