Scanner使用技巧

Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。可以使用不同的 next 方法将得到的标记转换为不同类型的值,例如:

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

Scanner下有hasNextXxxnextXxx的方法,Xxx代表值的类型。

  • hasNextXxx
    返回boolean,判断是否有下一个Xxx类型的标记。
  • nextXxx
    返回Xxx类型的值,省略Xxx则返回String类型。

Scannernext()nextLine()方法都是返回String类型,但是它们是有区别的:

  • next
    next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
  • nextLine
    nextLine()方法的结束符只有Enter键,即nextLine()方法返回的是Enter键之前的所有字符,通过这个方法可以得到带空格的字符串。对于回车,这个方法返回""空字符串。

next和nextLine组合使用的注意点:

所有以next开头的方法,和nextLine()连用,并且nextLine()next之后,那么需要在两者之间额外加一个nextLine()处理回车,因为nextLine()会读取结束next方法的Enter键。

实战:

public static void main(String[] args) {
	Scanner scanner = new Scanner(System.in);
	System.out.println("输入加密/解密id");
	String id = scanner.next();
	System.out.println("输入appSecret,如果输入回车,默认使用:default");
	// 处理回车
	scanner.nextLine();
	String appSecret = scanner.nextLine();
	if ("".equals(appSecret)) {
		appSecret = "default";
	}
	System.out.println("id:" + id);
	System.out.println("appSecret:" + appSecret);
	scanner.close();
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值