付费节点推荐
免费节点
节点使用教程
[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)
评论前必须登录!
登陆 注册