【发布时间】:2020-09-10 07:25:33
【问题描述】:
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 的操作时,我们会得到 98,因为 a 的 ASCII 值是 97。
那么为什么在上述情况下它不能与 char 数组一起使用。
对此有什么想法吗?
【问题讨论】:
-
Arrays.asList(x.toCharArray())将返回List<char[]>而不是List<char>或List<Character> -
您误解了
Arrays.asList(x.toCharArray())的作用。它创建一个包含一个元素的流:char 数组。它不会创建单个字符的流。