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相关推荐

  1. java 正则表达式学习

    一. Java正则表达式 在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂. 因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段. 正则表达式是一种可 ...

  2. java matcher函数_在Java正则表达式中使用Matcher.end()方法

    方法java.util.regex.Matcher.end()返回根据正则表达式从序列中匹配最后一个字符后的偏移值.此方法不需要任何参数.如果没有匹配发生,或者匹配操作失败,则抛出IllegalSta ...

  3. 【黑马程序员】 学习笔记 - Java正则表达式

    ----------------------android培训.java培训.期待与您交流!---------------------- Java正则表达式 一  概述: 1.概念: 正则表达式(英语 ...

  4. 孪生素数 java代码_科学网—孪生素数猜想——利用 Java + 正则表达式 输出孪生素数对 - 马廷灿的博文...

    查了一下资料,发现正则表达式竟然可以用来检查素数(http://coolshell.cn/articles/2704.html)!(由于工作需要,几年前开始接触.利用正则表达式,给工作带了很大方便,也 ...

  5. Java - 正则表达式的运用(Pattern模式和Matcher匹配)

    一.绪论: 在写程序的过程中,有时会需要匹配.查找.替换或者是判断字符串的出现情况,而且有时不能用简单的纯编码方式解决这些问题,这个时候就会想到要正则表达式,无论是Java, PHH, C#,  Py ...

  6. Java正则表达式入门

    一:什么是正则表达式 1.定义:正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的 ...

  7. Java正则表达式:我最期望弄懂的知识,希望对大家都有帮助

    在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用Linux的外,其他Linu ...

  8. (转)JAVA正则表达式语法大全

    [正则表达式]文本框输入内容控制 整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ 只能输入数字:"^[0-9]*$". 只能输入n位的数字:"^\d{n ...

  9. java 正则表达式 开头_如何在Java中修复表达式的非法开头

    java 正则表达式 开头 您是否遇到过这个令人难以置信的错误,想知道如何解决它? 让我们仔细阅读一下,研究如何解决表达式Java非法开头错误. 这是一个动态错误,这意味着编译器会发现某些不符合Jav ...

最新文章

  1. Linux 裸设备基础知识(转)
  2. proxy负载均衡、读写分离
  3. 使用ffmpeg循环推流(循环读取视频文件)推送RTMP服务器的方法
  4. 计算 1!+2!+3!+……+10!
  5. <<蜂鸟计划>>观后感
  6. VS2010 不能将参数 2 从“char [20]”转换为“LPCWSTR”的错误解决
  7. ROS2 on android,ROS2 通过Debian安装ROS2
  8. mysql许多连接错误而被阻止_怎样解决mysql连接过多的错误?
  9. Codeforces Round #682 (Div. 2)D Powerful Ksenia ///思维
  10. Oracle入门(十四.6)之使用标量数据类型
  11. 程序员有哪些可以写博客的网站?
  12. springMVC rest风格
  13. 高一计算机应用选择题,职业中学 高一《计算机应用基础》期末考试题
  14. 如何才能成为一个高效工作的软件工程师?
  15. repo start master --all 和repo start --all master区别
  16. 删除java速度变慢_Java正则表达式运行速度很慢
  17. 新的用户故事待办列表就是一副地图
  18. echart 水滴图水波颜色设置
  19. 阿里云HaaS100物联网开发板学习笔记(二)硬件控制初步--让小灯闪烁起来
  20. 黑客又没有工资,那他们靠什么来维持生活?答案说出让人意外!

热门文章

  1. 崔希凡JavaWeb视频教程_day23_ajax登录验证
  2. [BOI2003]团伙
  3. Lucene,Solr和Elasticsearch中的印度尼西亚语言
  4. 关于考试管理系统的实现
  5. 计算机教育部第四轮学科评估,第四轮学科评估结果发布,学科获评A+的都在这里...
  6. 蓝桥杯大赛决赛整理合集(B组C/C++)
  7. 如何进行Java 单元测试
  8. 朋友圈转发截图生成装逼工具源码
  9. 计算机设备停用代码22,Win7电脑提示由于该设备有问题Windows已将其停止(代码43)怎么办?...
  10. Unity3D图表控件使用XCharts使用