Scanner.next()方法是将空格或回车视为字符串的结尾,每次读取一个字符串;
Scanner.next()
你在sc.next()之后又调用了charAt(0),这个操作的结果就是每次读取一段字符串,然后将字符串的的第一个字符保存到字符数组中,这就造成了你只能一个字符加一个空格才能完整读取到所有输入的字符,但空格和回车不会被读入,因为空格和回车被视为字符串的结尾。
sc.next()
charAt(0)
你可以使用BufferedReader来读取输入
BufferedReader
另外,| &是位运算符,||和&& 才是逻辑或和逻辑与
|
&
||
&&