使用Scanner类,需要在最前面加上一种类似C语言中的头文件的一行代码,声明吧。
import java.util.Scanner;
之后可在终端处进行输入,可视为scanf的运用。
Scanner s = new Scanner(System.in);
int a = s.nextInt();
System.out.println("第一个整数:"+a);
int b = s.nextInt();
System.out.println("第二个整数:"+b);
Scanner也是一种类,在主方法中要对其实例化对象,再引用
配合next(),注意:int 型在之后加上nextInt() 其他数据类型一样,String这个类的为nextLine();
需要注意的是,如果在通过nextInt()读取了整数后,再接着读取字符串,读出来的是回车换行:"\r\n",因为nextInt仅仅读取数字信息,而不会读取回车换行"\r\n".
所以,如果在业务上需要读取了整数后,接着读取字符串,那么就应该连续执行两次nextLine(),第一次是取走回车换行,第二次才是读取真正的字符串
也可以直接用next();它直接取走回车换行同时输入更方便只写一行代码。。。。。
但是:
next()的话,确实是可以输入所有类型的数据
但是精度不够,最好是使用定义数据的类型
就像double 比 float 的范围更广,为什么不全部都使用double
因为浪费空间,最好是选择适用的所以建议什么数据类型用什么输入的格式。
况且,next在输入有效字符之前输入的空格,换行,tab都是无效的,在输入有效字符之后输入的空格,换行,tab都是它的结束符
nextLint的开始结束都只有换行,中间输入的空格,tab都会照常输出
拓展部分:
为避免浪费系统资源,
Scanner用完之后要关闭,不然会浪费系统资源
实例对象名称.close();即可