- ·上一篇文章:【JAVA】基础知识 第八章 常用实用类(3)
- ·下一篇文章:【JAVA基础知识】第八章 常用实用类(1)
【JAVA基础知识】第八章 常用实用类(2)
-->
[t]Scanner类[/t]
[t]使用Scanner类的对象从字符串中解析除程序所需要的数据。[/t]
1.使用默认分隔标记解析字符串
创建Scanner对象,并将解析的字符串传递给所构造的对象,那么scanner将空格作为分隔标记来解析字符串中的单词:
(1)scanner调用next()方法一次返回NBA中的单词,如果NBA最后一个单词已被next()方法返回,scanner调用hasNext()将返回false,否则返回true。
(2)如果要解析字符串中的数字型单词,scanner可以调用NextInt()、nextDouble()、方法
(3)如果字符串没有数字型单词,scanner调用NextInt()、nextDouble()、将发生inputMismatchException异常,在处理异常时可以调用next()方法返回非数字化单词。
String NBA=”I Love This Game”;
Scanner scanner=new Scanner(NBA);
【例子:】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package com.String; import java.util.*; public class to_string { public static void main(String argsp[]) { String cost="TV cost 876 dooler.Computer cost 3498 dollers,telephone cost 1278 dooller"; Scanner scanner =new Scanner(cost); String s=scanner.next(); System.out.println(s); ?// 输出: TV double sum=0; while(scanner.hasNext() ) { try{ double price=scanner.nextDouble(); sum=sum+price; System.out.println(price); } catch(InputMismatchException exp) { String t=scanner.next(); } } System.out.println("总消费:"+sum+"元."); } } |
使用正则表达式作为分隔标记解析字符串
以上例子中Scanner对象使用默认的分隔标记(空格)解析字符串中的全部价格数据,必须要求价格数字和其他字符分隔开,实际上我们可以调用useDelimiter(正则表达式)方法作为分隔标记。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | package com.String; import java.util.*; public class to_string { public static void main(String argsp[]) { String cost="TV cost 876dooler.Computer cost3498 dollers,telephone cost $1278dooller"; Scanner scanner =new Scanner(cost); scanner.useDelimiter("[^0123456789.]+"); double sum=0; while(scanner.hasNext() ) { try{ double price=scanner.nextDouble(); sum=sum+price; System.out.println(price); } catch(InputMismatchException exp) { String t=scanner.next(); } } System.out.println("总消费:"+sum+"元."); } } |
【JAVA基础知识】第八章 常用实用类(2)