01 用户交互Scanner
Scanner
- 要导入包 :import java.util.Scanner;
- 从键盘上读取数据
- //开始时的固定套路:Scanner sc1 = new Scanner(System.in);
// 中间的关键步骤:String str1=sc1.next(); 或者String str2=sc2.nextLine(); 后者更好用
// 将 键盘上输入的字符串 存放在 变量 str 中
//结束时的固定套路:sc1.close(); 凡是属于IO流的类如果不关掉就会一直占用资源,要养成良好习惯用完就关掉
基本语法等
-
创建一个扫描器对象,用于接收键盘数据,但是这里此时并没有真正用调用到键盘
-
Scanner sc1 = new Scanner(System.in);
// 类 对象 创建 (系统输入)
-
方法:真正地调用键盘的情况是在调用各种相关方法时会使用到,最后返回数值
- next() 、nextLine() :从键盘上获取输入的字符串
- hasNext()、 hasNextLine() : 判断是否有符合需要的字符串 ,一般与 if () 语句一起使用
- nextInt() 、nextFloat()、nextDouble() ··· :从键盘上获取输入的数据,分别对应 int ,float, double···
- hasNextInt()、 hasNextFloat() 、hasNextDouble(): 判断是否有符合需要的数据,一般与 if () 语句一起使用
next() 、nextLine()的区别
读取字符串的话最好使用 nextLine() 吧
代码
Test01_Scanner
package com.zhan.base_2;
import java.util.Scanner; //导入包
//开始时的固定套路:Scanner sc1 = new Scanner(System.in);
// 中间的关键步骤:String str1=sc1.next(); 或者String str2=sc2.nextLine(); 后者更好用
// 将 键盘上输入的字符串 存放在 变量 str 中
//结束时的固定套路:sc1.close();
public class Test01_Scanner {
public static void main(String[] args) {
/*创建一个扫描器对象,用于接收键盘数据,但是这里此时并没有真正用调用到键盘
真正地调用键盘的情况是在调用各种相关方法时会使用到
比如 sc1.hasNext(),sc1.next()
sc2.hasNextLine(),sc2.nextLine()
hasNextInt(),scanner.nextInt()
hasNextFloat(),scanner.nextFloat()
*/
Scanner sc1 = new Scanner(System.in); // 输入new Scanner(System.in);后按 alt+enter 自动补全
// 类 对象 创建 (系统输入)
System.out.println("使用next方式接收");
// 使用 hasNext() 判断用户有没有输入字符串 , 可以不用判断,但最好是用
if(sc1.hasNext()) { //调用方法,先从键盘上读取数据,然后返回结果(布尔值),if()里面默认为真
String str1 = sc1.next(); //调用方法,从键盘上读取数据,然后返回数据,再赋值 不如 nextLine 好用
System.out.println("输入内容为:" + str1);
}
//凡是属于IO流的类如果不关掉就会一直占用资源,要养成良好习惯用完就关掉
sc1.close(); //关掉语句
}
}
Test01_Scanner_2
package com.zhan.base_2;
import java.util.Scanner;
public class Test01_Scanner_2 {
public static void main(String[] args) {
System.out.println("使用nextLine方式接收");
Scanner sc2 = new Scanner(System.in);
if(sc2.hasNextLine()){
String str2=sc2.nextLine();
System.out.println("输入的内容为:"+str2);
}
sc2.close();
}
}
Test01_Scanner
package com.zhan.base_2;
import java.util.Scanner;
public class Test02_Scanner {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i=0;
float f= 0.0f;
System.out.println("请输入整数:");
if (scanner.hasNextInt()){ //调用方法,先从键盘上读取数据,然后返回结果,再判断输入的数是否为整数
i= scanner.nextInt(); //调用方法,从键盘上读取数据,然后返回数据,再赋值
System.out.println(i);
}else System.out.println("输入的不是整数!");
System.out.println("请输入浮点数:");
if (scanner.hasNextFloat()){ //调用方法,先从键盘上读取数据,然后返回结果,再判断输入的数是否为浮点数
f=scanner.nextFloat(); //调用方法,从键盘上读取数据,然后返回数据,再赋值
System.out.println(f);
}else System.out.println("输入的不是浮点数!");
scanner.close();
}
}
Test02_Scanner_2
package com.zhan.base_2;
import java.util.Scanner;
public class Test02_Scanner_2 {
// 通过空格或者回车,从键盘上输入多个数值,求和并求平均数
public static void main(String[] args) {
int sum=0;
int n=0;
Scanner scanner = new Scanner(System.in); // 输入new Scanner(System.in);后按 alt+enter 自动补全
System.out.println("请输入double 数据,输入非double数据结束计算");
while(scanner.hasNextDouble()){
double x = scanner.nextDouble(); // scanner.nextDouble();后 按 alt+enter 自动补全
n++; // n+=1; n=n+1
sum+=x;
System.out.println("当前"+n+"个数总和为:"+sum);
}
scanner.close();
System.out.println(n+"个数的总和为:"+sum);
System.out.println(n+"个数的平均数为:"+(sum/n));
}
}
标签:02,Scanner,System,键盘,println,out,sc1,进阶
From: https://www.cnblogs.com/zhanjianhai/p/17064151.html