正则表达式

从201604.txt文件内读取信息  然后输出加上总费用

13304526231张三:市话费:176.83元,长途费:107.33元,网络费:328.33元
总费用:612.490000元!
13664526211李四:市话费:26.25元,长途费:17.45元,网络费:928.79元
总费用:972.490000元!
13804523122王五:市话费:106.12元,长途费:87.26元,网络费:828.62元
总费用:1022.000000元!
13664526328刘六:市话费:116.80元,长途费:82.91元,网络费:528.61元
总费用:728.320000元!
13304521688周七:市话费:146.39元,长途费:167.28元,网络费:0.00元
总费用:313.670000元!

import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.Scanner;
import java.io.File;


public class Compute2 //计算通讯费用
{
public static void main(String [] args)throws Exception
{
Scanner sc = new Scanner(new File(“201604.txt”));
String str =“”;
Pattern p = Pattern.compile(“\\ d + \\。\\ d +”);
Matcher m = null;
总共= 0;
while(sc.hasNextLine()){
str = sc.nextLine();
的System.out.println(STR);
m = p.matcher(str);
总数= 0.0;
while(m.find())
total = total + Double.parseDouble(m.group());
System.out.printf( “总费用:%2F元\ r \ n”,总计);
}
}

}


从命令行内读入

import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;


public class ComputerUserSum 
{
public static void main(String[] args) 
{
Scanner sc = new Scanner(System.in);
String str = "";
while (sc.hasNextLine())
{
str = sc.nextLine();

Pattern p = Pattern.compile("[:元]");
String[] chai = p.split(str);//括号内是待拆分的字符串


double sum = 0.0;
sum += Double.parseDouble(chai[2]);  
sum += Double.parseDouble(chai[4]);  
sum += Double.parseDouble(chai[6]);  
System.out.printf("%s ,总费用:%.2f元!\r\n",str,sum);
//str.replaceAll("^[ \\t]*[0-9]*\\.", "")
}
}
}















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值