Java正则表达式草稿程序*2
1、成绩统计。
输入文件input.txt:
张三 语文12 数学31 英语11 李四 语文22 数学22 英语22 王五 语文33 数学33 英语33
期待输出output.txt:
张三 语文12 数学31 英语11 总分54 李四 语文22 数学22 英语22 总分66 王五 语文33 数学33 英语33 总分99
代码:
package com.my.test;import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern;public class AnalysisResult {private static Pattern r = Pattern.compile("(\\d+)");private static int getTotal(String line) {Matcher m = r.matcher(line);int total = 0;while (m.find()) {total += Integer.valueOf(m.group(0));}return total;}public static void main(String args[]) {try {/* 读入TXT文件 */File readFile = new File("input.txt");InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(readFile));BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String line;List<String> contents = new ArrayList<>();while ((line = bufferedReader.readLine()) != null) {contents.add(line);}bufferedReader.close();/* 写入TXT文件 */File writeFile = new File("output.txt");BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(writeFile, true));PrintWriter pw = new PrintWriter(bufferedWriter);for (int i = 0; i != contents.size(); ++i) {String temp = contents.get(i);pw.println(temp + " 总分" + getTotal(temp));}bufferedWriter.flush();bufferedWriter.close();} catch (Exception e) {e.printStackTrace();}} }
/
2、单词统计。
输入文件input.txt:
Today, when I go home after school, I find that I lose my key. I feel so worried and try to remember all the places I have been to. As I walk into the shop, an old man stops me and asks if I lose the key. I feel so excited and say yes. At last, I find my key and go home. Though I am lucky this time, I tell myself not to do it again.
期待输出:
代码:
package com.my.test;import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern;public class WordStatistic {private static int total = 0;private static Pattern r = Pattern.compile("(\\b[a-zA-Z]+\\b)");private static Map<String, Integer> wordMap = new HashMap<>();private static void countWords(String line) {Matcher m = r.matcher(line);while (m.find()) {total++;String word = m.group(0);Integer wordCount = wordMap.get(word);if (wordCount != null) {wordMap.put(word, wordCount + 1);} else {wordMap.put(word, 1);}}}private static List sortByValue(Map<String, Integer> map) {List<Map.Entry<String, Integer>> result = new ArrayList<>(map.entrySet());result.sort(Comparator.comparing(Map.Entry::getValue));return result;}public static void main(String[] args) {try {/* 读入TXT文件 */File readFile = new File("input.txt");InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(readFile));BufferedReader bufferedReader = new BufferedReader(inputStreamReader);String line;while ((line = bufferedReader.readLine()) != null) {countWords(line);}bufferedReader.close();} catch (Exception e) {e.printStackTrace();}System.out.println("单词总数:" + total);System.out.println("不同单词的个数:" + wordMap.size());List list = sortByValue(wordMap);for (int i = list.size() - 1; i != 0; --i) {System.out.println(list.get(i));}} }
转载于:https://www.cnblogs.com/xkxf/p/10197837.html
Java正则表达式草稿程序*2相关推荐
- java 正则表达式学习
一. Java正则表达式 在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂. 因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 正则表达式是一种可 ...
- java matcher函数_在Java正则表达式中使用Matcher.end()方法
方法java.util.regex.Matcher.end()返回根据正则表达式从序列中匹配最后一个字符后的偏移值.此方法不需要任何参数.如果没有匹配发生,或者匹配操作失败,则抛出IllegalSta ...
- 【黑马程序员】 学习笔记 - Java正则表达式
----------------------android培训.java培训.期待与您交流!---------------------- Java正则表达式 一 概述: 1.概念: 正则表达式(英语 ...
- 孪生素数 java代码_科学网—孪生素数猜想——利用 Java + 正则表达式 输出孪生素数对 - 马廷灿的博文...
查了一下资料,发现正则表达式竟然可以用来检查素数(http://coolshell.cn/articles/2704.html)!(由于工作需要,几年前开始接触.利用正则表达式,给工作带了很大方便,也 ...
- Java - 正则表达式的运用(Pattern模式和Matcher匹配)
一.绪论: 在写程序的过程中,有时会需要匹配.查找.替换或者是判断字符串的出现情况,而且有时不能用简单的纯编码方式解决这些问题,这个时候就会想到要正则表达式,无论是Java, PHH, C#, Py ...
- Java正则表达式入门
一:什么是正则表达式 1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的 ...
- Java正则表达式:我最期望弄懂的知识,希望对大家都有帮助
在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu ...
- (转)JAVA正则表达式语法大全
[正则表达式]文本框输入内容控制 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n ...
- java 正则表达式 开头_如何在Java中修复表达式的非法开头
java 正则表达式 开头 您是否遇到过这个令人难以置信的错误,想知道如何解决它? 让我们仔细阅读一下,研究如何解决表达式Java非法开头错误. 这是一个动态错误,这意味着编译器会发现某些不符合Jav ...
最新文章
- Linux 裸设备基础知识(转)
- proxy负载均衡、读写分离
- 使用ffmpeg循环推流(循环读取视频文件)推送RTMP服务器的方法
- 计算 1!+2!+3!+……+10!
- <<蜂鸟计划>>观后感
- VS2010 不能将参数 2 从“char [20]”转换为“LPCWSTR”的错误解决
- ROS2 on android,ROS2 通过Debian安装ROS2
- mysql许多连接错误而被阻止_怎样解决mysql连接过多的错误?
- Codeforces Round #682 (Div. 2)D Powerful Ksenia ///思维
- Oracle入门(十四.6)之使用标量数据类型
- 程序员有哪些可以写博客的网站?
- springMVC rest风格
- 高一计算机应用选择题,职业中学 高一《计算机应用基础》期末考试题
- 如何才能成为一个高效工作的软件工程师?
- repo start master --all 和repo start --all master区别
- 删除java速度变慢_Java正则表达式运行速度很慢
- 新的用户故事待办列表就是一副地图
- echart 水滴图水波颜色设置
- 阿里云HaaS100物联网开发板学习笔记(二)硬件控制初步--让小灯闪烁起来
- 黑客又没有工资,那他们靠什么来维持生活?答案说出让人意外!
热门文章
- 崔希凡JavaWeb视频教程_day23_ajax登录验证
- [BOI2003]团伙
- Lucene,Solr和Elasticsearch中的印度尼西亚语言
- 关于考试管理系统的实现
- 计算机教育部第四轮学科评估,第四轮学科评估结果发布,学科获评A+的都在这里...
- 蓝桥杯大赛决赛整理合集(B组C/C++)
- 如何进行Java 单元测试
- 朋友圈转发截图生成装逼工具源码
- 计算机设备停用代码22,Win7电脑提示由于该设备有问题Windows已将其停止(代码43)怎么办?...
- Unity3D图表控件使用XCharts使用