我是靠谱客的博主 激情音响,这篇文章主要介绍java的Scanner类:用户交互,输入输出,现在分享给大家,希望可以做个参考。

Scanner对象

复制代码
1
2
java.util.Scanner

我们可以通过Scanner来获取用户的输入

基本语法:

复制代码
1
2
Scanner sc = new Scanner(System.in);

通过Scanner类的
next()/nextLine():获取输入的字符串
hasNext()/hasNextLine():判断是否还有输入数据

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* System.out.println()//负责向控制台输出【从内存到控制台,输出的过程】 接收键盘输入【从键盘到内存,输入的过程】 */ import java.util.Scanner; public class KeyInputTest{ public static void main(String[] args){ //第一步:创建键盘扫描器对象 Scanner s=new Scanner(System.in); //第二步:调用Scanner对象的next()方法,开始接收用户键盘输入 //程序执行到这里会停下来等下来等待用户的输入; //当用户输入并且敲回车键的时候,键入信息就会赋值给userInputContent //next()接收文本【以字符串的形式接收】 //nextInt()接收数字【以整数型int的形式接收】 String userInputContent = s.next(); System.out.println("您输入了:" + userInputContent + 100); } } /* //第一步:创建键盘扫描器对象 Scanner s=new Scanner(System.in);//需要在代码前导入java.util.Scanner包 //第二步: String userInputContent = s.next();//字符串 或 int userIntputContent = s.nextInt();//数字 */

next()方法接收字符串

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package Scanner_test; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("使用next方法接受"); //判断用户有没有输入字符串 if(sc.hasNext()){ //sc.hasNext()默认为true String str = sc.next(); //程序会等待用户输入完毕 System.out.println("输入的第一个内容为内容为:"+str); } //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关 sc.close(); } }

运行结果:
使用next方法接受
hello world
输入的第一个内容为内容为:hello

进程已结束,退出代码 0

使用nextLine()方法接受

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package Scanner_test; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("使用nextLine方法接受"); if(sc.hasNextLine()){ //sc.hasNextLine()默认为true String str = sc.nextLine(); //程序会等待用户输入完毕 System.out.println("输入的第二个内容为内容为:"+str); } sc.close(); } }

使用nextLine方法接受
hello wworld
输入的第二个内容为内容为:hello wworld

进程已结束,退出代码 0

next():
一定要读取到有效的字符后才可以结束输出
对于输入有效字符之前遇到的空白,next()会自动去除掉
只有输入有效字符后,才能将其后面输入的空白作为分隔符或者结束符
next()不能得到带有空格的字符串

nextLine():
以enter为结束符,也就是nextLine()方法返回的是输入回车之前的所有字符
可以获得空白

hasNextInt() //判断是否有输入的下一个整数
nextInt() //接收用户输入的整数
hasNextFloat() //判断是否有输入的下一个小数
nextFloat() //接收用户输入的小数

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package Scanner_test; import java.util.Scanner; public class Demo03 { public static void main(String[] args) { int i; float f; Scanner sc = new Scanner(System.in); System.out.println("请输入整数"); if(sc.hasNextInt()){ //判断是否有输入的下一个整数 i = sc.nextInt(); //接收整数 System.out.println("整数数据"+i); }else{ System.out.println("输入的不是整数"); } if(sc.hasNextFloat()){ //判断是否有输入的下一个小数 f=sc.nextFloat(); //接收小数 System.out.println("小数数据"+f); }else{ System.out.println("输入的不是小数"); } } }

例子

需求:
可以输入多个数字,并求其平均数,每输入一个数字用回车确认,通过非数字来结束输入并输出执行结果。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package Scanner_test; import java.util.Scanner; public class Demo05 { /*需求: 可以输入多个数字,并求其平均数,每输入一个数字用回车确认,通过非数字来结束输入并输出执行结果。 */ public static void main(String[] args) { int count = 0;//计算输入数字的数量 double f; int i; double avg; double sum=0; Scanner sc = new Scanner(System.in); System.out.print("请输入:"); while(sc.hasNextDouble() || sc.hasNextInt()){ //判断是否输入的是数字或小数 System.out.print("请输入:"); if(sc.hasNextInt()){ //如果是整数; i=sc.nextInt(); sum=sum+i; count++; }else{ //如果是小数 f=sc.nextDouble(); sum=sum+f; count++; } } System.out.println("总和sum = "+sum); avg=sum/count; System.out.println("平均avg = "+avg); } }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package Scanner_test; import java.util.Scanner; public class Demo05 { /*需求: 可以输入多个数字,并求其平均数,每输入一个数字用回车确认,通过非数字来结束输入并输出执行结果。 */ public static void main(String[] args) { int count = 0;//计算输入数字的数量 double f; double avg; double sum=0; Scanner sc = new Scanner(System.in); System.out.print("请输入:"); while(sc.hasNextDouble()){ //判断是否输入的是数字或小数 System.out.print("请输入:"); f=sc.nextDouble(); sum = sum+f; count++; } System.out.println("总和sum = "+sum); avg=sum/count; System.out.println("平均avg = "+avg); } }

最后

以上就是激情音响最近收集整理的关于java的Scanner类:用户交互,输入输出的全部内容,更多相关java内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(80)

评论列表共有 0 条评论

立即
投稿
返回
顶部