对于参数类型char [],int运算符+未定义

时间:2020-09-10 07:25:33

标签: java string char

String x = "abcd";

Arrays.asList(x.toCharArray()).forEach(y -> System.out.println(y + 1));
// this line is giving an error that + operator is undefined for char[] and int.

Arrays.asList(new Integer[]{1, 2}).forEach(y -> {System.out.println(y + 1);});
// for integer it is working fine.

当我们使用+运算符执行类似'a' + 1的操作时,由于a的ASCII值为97,因此得到98。 那么为什么在上述情况下它不能与char数组一起使用。

对此有何想法?

1 个答案:

答案 0 :(得分:3)

Arrays.asListx.toCharArray()视为对象,因为x.toCharArray()返回char[],因此它被视为一个元素,并且您不能使char[] + int,要解决这个问题,您可以使用x.chars()

x.chars().forEach(y -> System.out.println(y + 1));