java scanner类成员_java Scanner类

本文详细介绍了Java的Scanner类,主要用于控制台输入。通过Scanner的hasNext()、hasNextLine()、next()、nextLine()等方法的使用,演示了如何读取整数和字符串。还探讨了next()与nextLine()的区别,前者以空格或换行符为结束标志,后者仅以换行符为结束。文章提供了实例代码以帮助理解这些方法的用法。
摘要由CSDN通过智能技术生成

首先,java.util.Scanner 作为Java5及之后的新特征,其常用于控制台输入,在此我分享一点个人的相关理解。

想要通过控制台进行输入,首先需要构造一个Scanner对象,并与“标准输入流”System.in关联。

Scanner scan = new Scanner(System.in);

注:请认真阅读下面的解释,再对比后面代码食用效果更佳

hasNext()  判断扫描器中当前扫描位置后是否还存在下一段。

hasNextLine()   如果在此扫描器的输入中存在另一行,则返回 true。

next()    查找并返回来自此扫描器的下一个完整标记(String)。

nextLine()     此扫描器执行当前行,并返回跳过的输入信息。

delimiter()  返回Scanner当前正用于匹配分隔符的pattern。

nextInt()读取整数,通过hasnextInt进行判断,同nextDouble(),nextFloat()等用法相同。

咱们再来看一个实例:

代码注释中特别解释了next()与nextline()第一个区别,结合上面各函数的定义更容易理解。

public class ScannerDemo {

public static void main(String []args){

Scanner scan = new Scanner(System.in);

System.out.println("请输入一个整数:");

while(scan.hasNextInt()){

int num = scan.nextInt();

System.out.println("请输入一个字符串:");

String str = scan.next();

// String str = scan.nextLine();

// 区别于next(),如果此处使用nextline(),则str会直接接收一个换行符。

// 因为上方的nextInt只是读取本行的int数据,而并不将“行指针”指向下一行,所以nextline只能接收到数字输入完成后的换行符。

System.out.println("number="+num+",string="+str);

System.out.println(scan.delimiter());

scan.close();

break;

}

}

}

运行结果如下:

请输入一个整数:

1325

请输入一个字符串:

smile

number=1325,string=smile

\p{javaWhitespace}+

我们再来看看next()与nextline()第二个区别:

public class ScannerDemo {

public static void main(String []args){

Scanner scan = new Scanner(System.in);

System.out.println("请输入一个字符串:");

while(scan.hasNext()){

String str0 = scan.nextLine(); //先是nextLIne

System.out.println("请再次输入一个字符串:");

String str1 = scan.next(); //再是next()

System.out.println("str0 = "+str0+" ; str1 = "+str1);

scan.close();

break;

}

}

}

运行结果如下:

请输入一个字符串:

smile dogge and happy catty

请再次输入一个字符串:

you are my sunshine

str0 = smile dogge and happy catty ; str1 = you

即:

next()接收字符串时,以空格或者换行符作为结尾

而nextLine可以接受空格作为字符串的一部分,只以换行符作为结尾。

通过上面的实例及代码注释,配合下面的函数讲解,我们可以认识到Scanner常用函数的使用方法。

多多练习才是正道,开始敲代码吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值