前几节我们学习了怎样使用String类的split(String regex)来分解字符串,以及怎样使用StringTokenizer类来解析字符串中的单词,这一节我们学习怎样使用Scanner类的对象从字符串中解析程序所需要的数据。
解析程序所需数据有两种方法,一是使用默认分隔标记解析字符串,二是使用正则表达式作为分隔标记解析字符串,本节我们学习第一种方法。
想要使用默认分隔标记解析字符串,我们需要创建Scanner对象,并将要解析的字符串传递给所构造的对象,例如:
StringNBA=ILoveThisGame;
为了解析出NBA中的单词,我们可以构造一个Scanner对象:
Scannerscanner=newScanner(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()方法返回非数字化单词。