当前位置:K88软件开发文章中心编程语言JavaJava01 → 文章内容

【JAVA基础知识】第八章 常用实用类(2)

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-4 7:53:38

-->

[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)