java scanner 结束输入_Java Scanner语法

1.导入:

import java.util.Scanner;

2.创建对象

Scanner scan = new Scanner(System.in);//一般变量名为scan或者in

最后关闭,scan.close();和I/O流有关,暂不清楚,照抄先。

3.next()

读取字符串,要读取到有效字符后才结束输入,不能读取空格,即遇到空格就停。

Scanner scan = newScanner(System.in);

String s1= newString();

String s2= newString();

String s3= newString();

s1=scan.next();

s2=scan.next();

s3=scan.next();

System.out.println(s1);

System.out.println(s2);

System.out.println(s3);if(scan.hasNext())

System.out.println("Yes");

输入:123 456 789 1011

输出:

123

456

789

Yes

s1第一次读取到有效字符1,遇到4前的空格结束第一次输入;随后s2遇到第一个有效字符4,遇到空格结束;s3遇到第一个有效字符7,同理遇到空格结束,此时还有未读取的字符在缓冲区里,用hasNext()判断;

4.hasNext()

判断是否还有输入的数据,不能识别空格或回车,还会吃掉空格或者回车,连续的空格加回车一次性全部吸收掉,ACM里用循环读取下一组数据。

5.nextLine()

和next()类似,唯一不同就是,next()遇到空格或者回车就断了,nextLine()遇到回车才断,空格也算是有效字符,从第一个有效字符开始直到回车,中间无论多少空格都能吃下。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagemy_acm;importjava.util.Scanner;public classMyTest10 {public static voidmain(String[] args) {

Scanner scan= newScanner(System.in);

String s1= newString();

String s2= newString();

String s3= newString();

String s4= newString();

s1=scan.next();

s2=scan.next();

s3=scan.next();

s4=scan.nextLine();

System.out.println(s1);

System.out.println(s2);

System.out.println(s3);

System.out.println(s4);if(scan.hasNext())

System.out.println("Yes1");if(scan.hasNextLine())

System.out.println("Yes2");

}

}/**输入:123 456 789 1011 12 13 14 15

输出:

123

456

789

1011 12 13 14 15

s4把9后面的全部字符全部都吃下去了,没有未读取的字符*/

nextLine()

6.hasNextLine()

可以判断空格和回车,但是不会吃掉任何字符。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

importjava.util.Scanner;public classMyTest10 {public static voidmain(String[] args) {

Scanner scan= newScanner(System.in);

String s1= newString();

String s2= newString();

String s3= newString();

String s4= newString();

s1=scan.next();

s2=scan.next();

s3=scan.next();

System.out.println(s1);

System.out.println(s2);

System.out.println(s3);if(scan.hasNext())

System.out.println("Yes1");if(scan.hasNextLine())

System.out.println("Yes2");

scan.close();

}

}

测试hasNext()会吃掉空格,hasNextLine()不会

48e0eb16075c5dbb30dae881781e5bae.png

78de574ad9b91595a4952f6d97f6e645.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

importjava.util.Scanner;public classMyTest10 {public static voidmain(String[] args) {

Scanner scan= newScanner(System.in);

String s1= newString();

String s2= newString();

String s3= newString();

String s4= newString();

s1=scan.next();

s2=scan.next();

s3=scan.next();

System.out.println(s1);

System.out.println(s2);

System.out.println(s3);if(scan.hasNextLine())

System.out.println("Yes2");if(scan.hasNextLine())

System.out.println("Yes3");if(scan.hasNext())

System.out.println("Yes1");

scan.close();

}

}

测试hasNext()会吃掉空格,hasNextLine()不会

2a83b54551c37f9a96468f41a4191c76.png

a41b6f9483fec2bdb54ca24512286a34.png

通过比较可以知道hasNextLine()可以判断空格和回车,并且不会吸收字符;

但是如果先遇到hasNext(),空格加回车全都被吃掉,后续接上hasNextLine()判断不到还有空格和回车。

7.其他类型的输入

nextDouble();

nextLong();

nextInt();

nextFloat();

nextByte();

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值