【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);

【例子:】

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(正则表达式)方法作为分隔标记。

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+"元.");

}
}

未经允许不得转载:Bcoder资源网 » 【JAVA基础知识】第八章 常用实用类(2)

相关推荐

更多优质资源关注微信公众号: bcoder

bcoder
赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册