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()来读取

posted @ 2020-01-08 18:21  不忆过去,不憧未来!  阅读(412)  评论(0编辑  收藏  举报