2 回答
![?](http://img1.sycdn.imooc.com/5333a1d100010c2602000200-100-100.jpg)
TA贡献1831条经验 获得超10个赞
请注意,每个字符都打印有print,而不是println。
for (int i = 0; i < chars.length; i++){
System.out.print(chars[i]);
}
System.out.println(); // To a new line
System.out.println(chars.length); //this also shows 16
![?](http://img1.sycdn.imooc.com/5458626a0001503602200220-100-100.jpg)
TA贡献1829条经验 获得超6个赞
首先,Java 不会将数组的长度附加到数组中。也没有String.toCharArray。所以,无论你看到什么,这都不是解释。
另一方面,我无法解释到底发生了什么,因为您没有向我们提供实际的输入和输出。
即便如此,从您的代码中可以明显看出一些明显的误解
首先,这个语句没有做任何有用的事情:
chars = new char[input.length()];
为什么?因为
chars = input.toCharArray();
将返回一个全新的数组。它不会填充您之前分配的字符数组。(任务只是取代了它......)
第二个误解是这样的:
if (chars[0] == 4){
....
}
目前尚不清楚您期望测试做什么,但它不是在测试字符“4”。它正在测试 Unicode 代码点 \u0004 ... 这是 ASCIIEOT控制字符,或CNTRL-D在典型的西方键盘上。
简而言之,验证可能没有测试您所期望的。(为什么您希望用户输入控制字符?)
要测试字符 '4' ... 使用字符文字。单引号。
if (chars[0] == '4'){
....
}
添加回答
举报