Java 中 .next 和 .nextLine 的区别
最编程
2024-04-28 17:09:10
...
nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
next()会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。
(简单点说,next我只要字,nextLine我啥都要)
- package test;
- import java.util.Scanner;
- public class SubLoop {
- public static void main(String[] args) {
- String s1,s2;
- Scanner sc=new Scanner(System.in);
- System.out.print("请输入第一个字符串:");
- s1=sc.nextLine();
- System.out.println("输入的字符串是:"+s1);
- System.out.print("请输入第二个字符串:");
- s2=sc.next();
- System.out.println("输入的字符串是:"+s2);
- }
- }
运行结果图
(输入时,两个单词前后各有4个空格)
②
next()在输入有效字符之后,将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
nextLine()方法的结束符只是Enter键
交换上述两个字符串的next和nextLine
运行结果图
(输入时,两个单词前后各有4个空格)
经过验证,其他的next的方法,如nextDouble() ,nextFloat() ,nextInt() 等与nextLine()连用时都存在这个问题。
解决的办法是:
在每一个 next()、nextDouble() 、nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。(顽皮点说,因为nextLine啥都要,所以有时候要错了空格,等不到所需输入)
- package test;
- import java.util.Scanner;
- public class SubLoop {
- public static void main(String[] args) {
- String s2;
- int s1;
- Scanner sc=new Scanner(System.in);
- System.out.print("请输入第一个整数:");
- s1=sc.nextInt();
- sc.nextLine();
- System.out.println("输入的整数是:"+s1);
- System.out.print("请输入第二个字符串:");
- s2=sc.nextLine();
- System.out.println("输入的字符串是:"+s2);
- }
- }
运行结果图
(输入时,两个单词前后各有4个空格)
参考资料:http://jingyan.baidu.com/article/9f63fb91ad6cbfc8400f0e82.html
上一篇: [Java] 输入扫描仪使用情况(完整)
下一篇: java 如何输入字符数组
推荐阅读
-
了解并使用 JAVA 中的 set 和 get 方法
-
电路中过电压保护和过电流保护的区别
-
HTTP 中 Get 和 Post 的区别以及对等价性的探索
-
硬件安全模块(HSM)、硬件安全引擎(HSE)和安全硬件扩展(SHE)之间的区别 - HSE 在汽车中的主要应用:
-
位、字节、WORD、DWORD 的区别和联系 - Unicode 和 ANSI 的区别就像输入法中 "全宽 "和 "半宽 "的区别一样。 由于不同的 ANSI 编码有不同的标准(不同的字符集),对于给定的多字节字符串,我们必须知道它使用的是哪种字符集,才能知道它包含哪些 "字符"。对于 UNICODE 字符串来说,无论环境如何,它所代表的 "字符 "内容始终是相同的。Unicode 有一个统一的标准,定义了世界上大多数字符的编码,因此拉丁文、数字、简体中文、繁体中文和日文都可以存储在一个编码中。统一码是一个统一的标准,定义了世界上大多数字符的编码。 比特(Bit)和字节(Byte)的区别:例如USB2.0 标准接口的传输速率为 480Mbps,有一些人误认为是每秒 480 兆比特,同样网络带宽为 2MB,就容易误认为是每秒 2 兆比特。其实,480Mbps 应该是 480 兆比特/秒或 480 兆字节/秒,它等于 "60 兆字节/秒";同样,2MB,应该是 256 兆字节/秒。 Bit 和 Byte 译为 "比特",都是数据计量单位,比特="位 "或 "比特"。 Byte = 字节,即 1byte = 8bits,两者的换算关系为 1:8。 Mbps = mega bits per second(兆位/秒)是速率单位,因此 2M 带宽应为 2 兆位/秒,即 2MBps。MB = 兆字节(Megabytes,兆字节)是单位量,1MB/S(兆字节/秒)= 8MBPS(兆字节/秒)。 通常所说的硬盘容量是指 40GB、80GB、100GB,其中的 B 是指 Byte 也称为 "字节"。 1 KB=1024 字节 1 MB=1024 KB=1024*1024 字节 1 GB=1024 MB=1024*1024*1024 字节 例如,以前所谓的 56KB MODEM 转换过来的 56KBps 除以 8 就是 7Kbyte,所以真正从网上下载文件存在硬盘上的速度也是每秒 7Kbyte;也就是说,用 B 表示传输速度一般指 Bit;用 B 表示容量一般指 Byte。比特、字节、WORD、DWORD 的本质。
-
贪婪算法在 Python、JavaScript、Java、C++ 和 C# 中的多种实现及其在硬币变化、分数骑士、活动选择和使用哈夫曼编码的最小生成树问题中的应用实例
-
Java 中 next 和 nextline 的用法
-
Java 中 .next 和 .nextLine 的区别
-
Java 中字符串数组的输入和输出
-
基于 Java 的打包 jar、war、ear 包的作用和区别详解