Java初级学习(六)Java之用户交互Scanner(获取用户输入)
Scanner类会导入
import java.util.Scanner;
1.创建一个Scanner对象用于获取用户输入
1 public static void main(String[] args) { 2 //这句话的编写顺序为,先写new Scanner(System.in);,然后将鼠标放在;后,按住Alt+回车,选择第一个,回车。 3 //再修改参数scanner的名字为s,回车,这句话就完成了。 4 Scanner scanner = new Scanner(System.in); 5 //最后一定要关闭,最好创建scanner对象的时候就先写上关闭语句。 6 scanner.close(); 7 }
2.Scanner对象的next()方法(不常用)
1)读取到有效字符后才可以结束输入;
2)自动忽略输入的有效字符之前的空白,有效字符之后的空白会被认为是分隔符或结束符;
1 public static void main(String[] args) { 2 //创建一个扫描器对象scanner1,用于接收键盘数据 3 Scanner scanner1 = new Scanner(System.in); 4 System.out.println("使用next()方式接收:"); 5 //判断scanner1有没有内容,默认为if (scanner1.hasNext()==true) 6 if (scanner1.hasNext()){ 7 //使用next()接收 8 String str1 = scanner1.next(); 9 System.out.println("你输入的内容为:"+str1); 10 } 11 12 //最后一定要关闭,最好创建scanner对象的时候就先写上关闭语句。 13 scanner1.close(); 14 }


3.Scanner对象的nextline()方法(常用)
以回车为结束符,可以读取空白。
1 public static void main(String[] args) { 2 //创建一个扫描器对象scanner2,用于接收键盘数据 3 Scanner scanner2 = new Scanner(System.in); 4 System.out.println("使用nextline()方式接收:"); 5 //判断scanner2有没有内容,默认为if (scanner2.hasNext()==true) 6 if (scanner2.hasNextLine()){ 7 //使用nextline()接收 8 String str2 = scanner2.nextLine(); 9 System.out.println("你输入的内容为:"+str2); 10 } 11 12 //最后一定要关闭,最好创建scanner对象的时候就先写上关闭语句。 13 scanner2.close(); 14 }
4.Scanner进阶
1)Scanner还有一些其他方法可以使用,例如hasNextInt、hasNextFloat等
1 public class Demo08 { 2 public static void main(String[] args) { 3 //创建scanner用于从键盘接收数据 4 Scanner scanner = new Scanner(System.in); 5 6 int i=0; 7 float f = 0.0f; 8 //从键盘接收数据 9 System.out.println("请输入数据:"); 10 if (scanner.hasNextInt()){ 11 System.out.println("你输入的是一个整数!"); 12 }else if (scanner.hasNextFloat()){ 13 System.out.println("你输入的是一个小数!"); 14 }else{ 15 System.out.println("未知数!"); 16 } 17 scanner.close(); 18 19 } 20 }
2)小练习:求若干个数的平均值
1 import java.util.Scanner; 2 3 //Scanner进阶2 4 public class Demo10 { 5 public static void main(String[] args) { 6 //输入若干个数字,求和与平均数 7 Scanner scanner = new Scanner(System.in); 8 9 System.out.println("请输入数字,以回车确认,以非数字结束:"); 10 double sum = 0; 11 int i =0; 12 13 while (scanner.hasNextDouble()){ 14 double x = scanner.nextDouble(); 15 i++; 16 sum += x; //也就是sum=sum+x 17 } 18 System.out.println("所有数字的和为"+sum); 19 System.out.println("平均数为"+sum/i); 20 21 scanner.close(); 22 } 23 24 }

浙公网安备 33010602011771号