格式1:Scanner sc=new Scanner (new BufferedInputStream(System.in));(速度会快一点)
格式2:Scanner sc=new Scanner(System.in);
读入一个整数:int n=sc.nextInt();
读入一个浮点数:double t=sc.nextDouble();
读入一个字符串:String s=sc.next();或者String s=sc.nextLine();
- next(): 一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。比如,在控制台输入“ gjm gjm ”时,一次next()读入进来的仅仅是"gjm"。它不能得到带空格的字符串的!
- nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符。比如,在控制台输入“ gjm gjm ”时,一次nextLine()读入进来的结果是" gjm gjm "。它是可以得到带空格的字符串的!
- 详见:https://www.cnblogs.com/gjmhome/p/11349395.html,
https://blog.csdn.net/Zhiyuan_Ma/article/details/51592730
输入未知多行数据:
-
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); List<String> list = new ArrayList<String>(); String s; while(true){ if((s = scanner.nextLine()).equals("")){ break; } list.add(s); } }