Scanner类中nextLine()和next(),nextInt()等等的区别。

写给自己留个记录,同时也希望能帮助到你们~

技术交流群:167692269

----------------------

结论;

1.nextLine()是     无论赋值与否      都 以回车结束

2.next(),nextInt()等等是      必须赋值后   才 以空格或回车结束。(若是没有赋值,则一直不会进行到下一步的读取。)


实际应用一:

import java.util.Scanner;


public class shiyan08 {

	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();
		int m=sc.nextInt();
		String x=sc.nextLine();
		System.out.println("---"+n+"---");
		System.out.println("---"+m+"---");
		System.out.println("---"+x+"---");
		
	}

}


输入:

4
2


输出:

---4---
---2---
------

原因:

输入4后,回车。4被赋值给n。

同时,回车也作为x的结束符,(因为之前4被赋值给n),所以x空字符串。

接着,输入2,回车。2赋值给m。

输出如上。


解决办法:

public class shiyan08 {

	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();
		sc.nextLine();        //接收一个回车。以防止第一个回车  作为 x 的结束符,使得x被赋值为空字符串。  
		int m=sc.nextInt();  
sc.nextLine(); ` //接收一个回车,以防止第二个回车 作为 x的结束符,使得x被赋值为空字符串。String x=sc.nextLine();System.out.println("---"+n+"---");System.out.println("---"+m+"---");System.out.println("---"+x+"---");}}
 

如果需要按到回车时,加一个sc.nextline()接收这个回车符。  以防止 需要用到回车符 
(如给 x 赋值)时, 之前的回车被错误的当成x 的结束标志了。 

输入:

4
2
我终于能输入了

输出:

---4---
---2---
---我终于能输入了---


实际应用二:

public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		
		int n=sc.nextInt();
		int m=sc.nextInt();	
		String x=sc.nextLine();
		System.out.println(n+m);
	
		
		

	}


输入:

1 4 56
输出:

5


原因:

输入1后,空格。1被赋值给n。

然后4后面又有一个空格,4被赋值给了m。

n,m已经接收完毕。所以后面输入多少都不会被接收了。

所以输出是5.


--------------

若是有什么疑问或者新的见解,,欢迎讨论~

技术交流群:167692269

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值