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的更多相关文章

  1. java 正则表达式学习

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

  2. java正则表达式【大全】

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

  3. Java 正则表达式[转载]

    PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...

  4. Java正则表达式的应用

    在很多种情况下,我们都必须对字符串进行匹配,以便判断字符串的格式是否符合要求,对字符串中的内容进行提取.比如,我要从一段话aabdfe中,判断这段话是否有包含ab这个词,那么如果用if-else来判断 ...

  5. 【转】java正则表达式

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

  6. Java 正则表达式学习总结和一些小例子

    从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础工具,可以用于很多类型的文本处理, 如匹配,搜索,提取和分析结构化内容. java.util.r ...

  7. java正则表达式语法详解及其使用代码实例

    原文地址 译者序(下载代码) 正则表达式善于处理文本,对匹配.搜索和替换等操作都有意想不到的作用.正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率. ...

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

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

  9. Java 正则表达式的总结和一些小例子

    字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了j ...

随机推荐

  1. Vivado Design Suite用户指南之约束的使用第一部分(介绍部分)

    首先来看目录部分: 首先是介绍部分:这部分讲述的是Migrating From UCF Constraints to XDC Constraints(从UCF约束迁移到XDC约束)和About XDC ...

  2. Redis密码设置与访问限制

    https://www.cnblogs.com/ghjbk/p/7682041.html https://ruby-china.org/topics/28094

  3. Android 7.0 适配

    extends:http://www.jianshu.com/p/56b9fb319310http://blog.csdn.net/chay_chan/article/details/57083383

  4. Linux下的搜索查找命令的详解(which)

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:  which  查看可执行文件的位置. whereis 查看文件的位置.  locate   配合数据库查看文件 ...

  5. 剑指offer——python【第54题】字符流中第一个不重复的字符

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  6. js设计模式(三)---代理模式

    代理模式: 代理模式是为一个对象提供一个代理用品或占位符,以便控制对他的访问. 实现: 在 Web开发中,图片预加载是一种常用的技术,如果直接给某个 img 标签节点设置 src 属性,由于图片过大或 ...

  7. HTML02单词

    form:表单action:行动(提交的路径)method:方法(提交的方式)input:输入type:类型text:文本(文本输入项)password:密码radio:单选按钮checkbox:复选 ...

  8. 根据Excel模板,填写报表,并下载到web浏览器端

    package com.neusoft.nda.basic.recordmanager.viewelec.servlet; import java.io.File; import java.io.Fi ...

  9. JAVA SE ------------------- 项目的菜单输入

    //写一个工具类,进行输入选项数值的获取public class InputUtil { static Scanner sc=new Scanner(System.in); public static ...

  10. day18 十八、random、shutil、shevle、logging

    一.random 模块:随机数 1. import random # .[,]整数 random randint(,) print(random.randint(, )) # 随机产生[,]中的一个数 ...