初学java 对Scanner类的理解汇总

java.util.Scanner类 —用于扫描输入文本

从java5开始 java加入了java.util.Scanner类 内置的函数用于不同情况的检索文本。

nextInt()

nextInt():只读取数值,结尾处"\n"不会读取,并将光标放在本行中。

next()

next():遇见第一个有效字符是开始扫描,遇见第一个分隔符或结束符时结束扫描,获取扫描内容。

nextLine()

nextLine():扫描一行内容作为一个字符串被获取

下面是学习时遇见的问题

  • next()与nextLine()混用导致某行输出直接跳过
import java.util.Scanner;
public class TestScanner {
	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(); //此时nextLine读取了next忽略掉的回车 从而直接跳过s2
	    System.out.println("输入的字符串是:" + s1 + " " + s2);	
	}

}

运行时发现结果是这样的:

输入的第一个字符串是:home
输入的第二个字符串是:输入的字符串是:home

可以看出由于s1使用的是next()避开了回车键的读取,而到了s2使用的是nextLine(),扫描了剩下的回车,从而直接进入最后的println,由于print输出不会换行,最后呈现的是这样的结果。

在遇见next()和nextLine()一起用的情况时,一定要注意避免先使用next()后使用nextLine(),从而导致某一字符串输出为空的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值