问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java中Scanner类中的next方法

发布网友 发布时间:2022-04-23 01:48

我来回答

1个回答

热心网友 时间:2023-05-21 13:07

在Java实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较简单。在编程的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),另一种是nextLine(),这两种有以下区别:
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
简单地说,next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串。
nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
下面介绍使用方法的例子:
import port java.util.Scanner;
public class NextTest{
public static void main(String[] args) {
String s1,s2;
Scanner sc=new Scanner(System.in);
System.out.print("请输入第一个字符串:");
s1=sc.nextLine();
System.out.print("请输入第二个字符串:");
s2=sc.next();
System.out.println("输入的字符串是:"+s1+" "+s2);
}
}
运行结果:
请输入第一个字符串:Hello
请输入第二个字符串:World

输入的字符串是:Hello World
把程序改一下:
import port java.util.Scanner;
public class NextTest{
public static void main(String[] args) {
String s1,s2;
Scanner sc=new Scanner(System.in);
System.out.print("请输入第一个字符串:");
s1=sc.next();
System.out.print("请输入第二个字符串:");
s2=sc.nextLine();
System.out.println("输入的字符串是:"+s1+" "+s2);
}
}
运行结果是:
请输入第一个字符串:Hello
请输入第二个字符串:输入的字符串是:Hello
可以看到,nextLine()自动读取了被next()去掉的Enter作为他的结束符,所以没办法给s2从键盘输入值。经过验证,我发现其他的next的方法,如double nextDouble() , float nextFloat() , int nextInt() 等与nextLine()连用时都存在这个问题,解决的办法是:在每一个 next()、nextDouble() 、 nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。

import port java.util.Scanner;
public class NextTest{
public static void main(String[] args) {
String s1,s2;
Scanner sc=new Scanner(System.in);
System.out.print("请输入第一个字符串:");
s1=sc.next();
sc.nextLine();
System.out.print("请输入第二个字符串:");
s2=sc.nextLine();
System.out.println("输入的字符串是:"+s1+" "+s2);
}
}
运行结果是:
请输入第一个字符串:Hello
请输入第二个字符串:World
输入的字符串是:Hello World
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
intel 英特尔 酷睿 i5-9400F CPU 2.9GHz 6核6线程-详细介绍 vivo手机越用网络越慢 怎么检测 二手苹果电脑交易注意买二手苹果笔记本电脑应注意什么 比如我买一个二手笔记本卖家笔记本预装正版win10的话把他账号注销登录我... 二手苹果笔记本怎么更改账户 军婚假期有多少天 金立e6mini开机出现el 甘肃基层卫生主要内容 甘肃基层医疗卫生系统怎么撤销处方 天津市选调生通过面试了不去会怎么样 java中next与nextLine的用法 java中nextLine和next的区别 java中 .next 的用法含义(急) 英语中 next 2 you与next to you意思同吗 you are the next 英语翻译 是you are next pefect. 请讲解,另外加分…… your are next 一首很*的英文歌 里面清唱完了有句歌词结尾两个单词是 you are 这个歌名是啥 you are next 和 you will be next 的区别 you are next.相近的意思 A it's your turn. B. it's your time. C.it's your duty.D.it's your day. 眼镜框能换吗 眼镜架歪了,可以去眼镜架换吗? 眼镜换框架 我在眼镜店配了一副眼镜,我能在去那个店里换眼镜框吗 镜架的颜色如何更换 眼镜框可以换吗 眼镜架能不能换 更换眼镜架 眼镜架可以换吗 眼镜框断了怎么办!!!可以换一个框么? java中next()方法是干什么的? Java 这个里面的next是什么数据类型? Java中,next;和nextLine;有什么区别 Java中,一个类里面的关键字 next 是什么意思 input.next();在java里面是什么意思? Java中 输入字符串的时候next()和nextline()有什么区别 java中next和nextline的区别 java的next()的问题 java 问题 java next 遇到的问题 java中Scanner的next系列方法工作原理? java 对象的集合 next()有什么作用? next关键字,在java里面哪里用到的? java中next函数是什么意思?并举例。谢谢 java中".next"的用法问题 java nextInt()方法 java代码nextInt是什么 MIUI9稳定版桌面如何关闭 猜你喜欢 我买的榨汁机没有过滤网怎么榨水果汁啊 鲜榨果汁怎么过滤啊? 如何榨果汁,用什么工具更方便?