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));
}
}
}
Java正则表达式草稿程序*2的更多相关文章
- java 正则表达式学习
一. Java正则表达式 在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂. 因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 正则表达式是一种可 ...
- java正则表达式【大全】
[正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$& ...
- Java 正则表达式[转载]
PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...
- Java正则表达式的应用
在很多种情况下,我们都必须对字符串进行匹配,以便判断字符串的格式是否符合要求,对字符串中的内容进行提取.比如,我要从一段话aabdfe中,判断这段话是否有包含ab这个词,那么如果用if-else来判断 ...
- 【转】java正则表达式
在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu ...
- Java 正则表达式学习总结和一些小例子
从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础工具,可以用于很多类型的文本处理, 如匹配,搜索,提取和分析结构化内容. java.util.r ...
- java正则表达式语法详解及其使用代码实例
原文地址 译者序(下载代码) 正则表达式善于处理文本,对匹配.搜索和替换等操作都有意想不到的作用.正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率. ...
- JAVA正则表达式语法大全
[正则表达式]文本框输入内容控制 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n ...
- Java 正则表达式的总结和一些小例子
字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了j ...
随机推荐
- iOS - User Agent 的应用和设置
UA在项目中的应用 给项目的webview或项目中的接口请求加一个区分,用来区别是iOS端访问.android访问还是在浏览器访问的,这时需要添加User Agent (http请求 header中的 ...
- OpenGL——OpenCV与SOIL读取图片进行纹理贴图
使用OpenCV读取图片代码如下 img = imread(m_fileName); if (img.empty()) { fprintf(stderr, "Can not load ima ...
- 从unity丢图标到unity进不去桌面
现象1: 用了一年多的unity的右上角的网络图标和网易云音乐的图标消失不见了,我也不记得最近有update或upgrade过,然而这两个功能还是可以正常用 解决1: 安装Gnome,果然相应的图标就 ...
- C# 求俩个正整数的最小公倍数和最大公约数
C# 求俩个正整数的最小公倍数和最大公约数 1.公倍数.最小公倍数 两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数 翻开小学5年级下册PPT 1.1 ...
- java httpclient post xml demo
jar archive: http://archive.apache.org/dist/httpcomponents/ 基于httpclient 2.0 final的demo(for jdk1.5/1 ...
- Python Pandas 时间序列双轴折线图
时间序列pv-gmv双轴折线图 import numpy as np import pandas as pd import matplotlib.pyplot as plt n = 12 date_s ...
- poj1321_kuagnbin带你飞专题一
棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 43565 Accepted: 21163 Descriptio ...
- x86指令格式
学习于逆向工程核心原理IA-32指令章节 格式 x86指令格式 指令前缀 出现特定操作码时用作补充说明,图中的冒号前的64就是指令前缀 操作码 实际的指令,如图中的FF.89.80都是操作码 Mod ...
- hibernate09--连接查询
创建实体类 package cn.bdqn.bean; import java.util.ArrayList; import java.util.Date; import java.util.List ...
- Oracle课程档案,第十四天
备份数据文件:SQL> select file_id, file_name from dba_data_files; backup:备用(备份) datafile:数据文件 backup tab ...