前几节我们学习了怎样使用String类的split(String regex)来分解字符串,以及怎样使用StringTokenizer类来解析字符串中的单词,这一节我们学习怎样使用Scanner类的对象从字符串中解析程序所需要的数据。


解析程序所需数据有两种方法,一是使用默认分隔标记解析字符串,二是使用正则表达式作为分隔标记解析字符串,本节我们学习第一种方法。


想要使用默认分隔标记解析字符串,我们需要创建Scanner对象,并将要解析的字符串传递给所构造的对象,例如:

String NBA = "I Love This Game";


为了解析出NBA中的单词,我们可以构造一个Scanner对象:

Scanner scanner = new Scanner(NBA);


那么scanner将空格作为分隔标记来解析字符串中的单词,解析操作的特点如下:

1)scanner调用next()方法依次返回NBA中的单词,如果NBA最后一个单词已被next()方法返回,scanner调用hasNext()将返回false,否则返回true。

2)对于被解析的字符串中的数字型单词,比如123,1.23等,scanner可以用nextInt()或nextDouble()方法来代替next()方法,即scanner可以调用nextInt()或nextDouble()方法将数字型单词转化为int或double数据返回。

3)如果单词不是数字型单词,scanner调用nextInt()或 nextDouble()方法将发生InputMismatchException异常,在处理异常时可以调用next()方法返回非数字化单词。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)