java中sc.next()与sc.nextLine()输入字符串的区别和注意事项

1.sc.next()

1)一定是在输入有效字符串后才结束输入。(空格键(\s)、Tab键(\t)或Enter键(\r)等都是非有效字符)一但输入有效字符后,遇到空格键(\s)、Tab键(\t)或Enter键(\r)直接结束输入。

2)从1)我们可以知道sc.next()输入法是不能接收:空格键(\s)、Tab键(\t)或Enter键(\r)字符的

3)详情见代码:

import java.util.Scanner;
public class Test {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
/*输入:输入有效字符后遇到回车换行直接结束输入
IamChinese.
I love my motherland.
*/
		String st1 = sc.next();//此时str1直接收了“IamChinese.”
/*输出结果如下:
IamChinese.		    
*/
		System.out.println();//让输入和输出不在同一行,方便观察结果
		System.out.println(st1);
/*输入:第一个有效字符‘I’前含有回车和空格还有tab

		 I am Chinese.
I love my motherland.
*/
		String st2 = sc.next();
/*首个有效字符前的回车、空格、tab都不会被输入,
  当输入有效字符后遇到回车或空格或tab直接结束输出.
  输出结果如下:
I      
*/
		System.out.println();
		System.out.println(st2);
	}
}

输出结果如图所示:

 2.sc.nextLine()

1)回车键(\r)前的所有字符都能接收,遇到回车键(\r)结束输入;

2)从1)可知sc.nextLine是不能接收回车键的(\r),即一个sc.nextLine只接收一行字符串不含回车键;

3)当我们一次输入多行字符串时,输入多次时,,它会优先前面的输入,直到前面的输入接收完才接收后面的输入;

3)祥情见代码

import java.util.Scanner;
public class Test {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
/*输入含tab、空格、回车
	I am Chinese.第一次输入	
I love my motherland.第一次输入
 */
		String str1 = sc.nextLine();
		System.out.println();
		System.out.println(str1);
/*输入:一开始是回车键,直接结束

	I am Chinese.第二次输入
I love my motherland.第二次输入
*/		
		String str2 = sc.nextLine();
		System.out.println();
		System.out.println(str2);//此时 str2==null
	}
}

输出如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识汲取者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值