Scanner 的next()输入只接收第一个
说明:
next()
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。比如,在控制台输入“ gjm gjm ”时,一次next()读入进来的仅仅是"gjm"。它不能得到带空格的字符串的!
nextLine()
nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符。比如,在控制台输入“ gjm gjm ”时,一次nextLine()读入进来的结果是" gjm gjm "。它是可以得到带空格的字符串的!
```javascript
// An highlighted block
package com.zt.posts.common.util;
import lombok.extern.slf4j.Slf4j;
import java.util.Scanner;
@Slf4j
public class ScannerDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String in = sc.next();
// String in = "Hello World Ni";
System.out.println(in);
System.out.println(in.equals("Hello World Ni"));
log.info(in);
String [] str = in.split(" ");
System.out.println(str.length);
for (String s: str) {
System.out.print(s+"\t");
}
String [] str1 = new String[str.length];
for (int i =0 ; i <str.length; i++) {
str1[i] = str[str.length-i-1];
}
int m = 1;
/*for (String s: str1) {
System.out.print(s);
m=0;
System.out.print("\t"+s);
}*/
}
}
```
解决: 使用nextLine()来读取