Java统计一篇文章中每个字符出现的个数
大家可以参考下面代码,有什么疑问请留言。。。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set; public class CountTheTimesOfCharsAppear {
private static final String filePath = "\\String.txt"; public static void main(String[] args) { Long start = System.nanoTime();
//读取文件
BufferedReader bReader = null;
StringBuffer sBuffer = null; try { bReader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8")); sBuffer = new StringBuffer(); String line = null;
while ((line = bReader.readLine())!=null) { sBuffer.append(line); } } catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally { if (bReader != null) {
try {
bReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } String data = new String(sBuffer); data.trim(); System.out.println("文件的内容===》"+data); System.out.println(data.length()); //解析文本内容不统计所有文集或者字符出现的次数 //对字符串中的字符进行去重
String newData = RemoveDuplicateChar(data); System.out.println("文件的内容===》"+newData);
System.out.println(newData.length()); List<content> list = new ArrayList<>();
//統計每個字符出現的次數
for(int i=0; i< newData.length();i++) {
int count = 0;
for(int j = 0; j < data.length();j++) { if (newData.charAt(i)== data.charAt(j)) { count++;
}
} list.add(new content(newData.charAt(i),count));
} System.out.println(list);
System.out.println(list.size());
//根據字符出現的次數進行排序
Collections.sort(list, new Comparator<content>() { @Override
public int compare(content o1, content o2) {
// TODO Auto-generated method stub
return o2.getFrequency()-o1.getFrequency();
}
}); System.out.println(list);
System.out.println(list.size()); Long end = System.nanoTime(); System.out.println(end-start);
} //对字符串中的字符进行去重
/**
* Return a String which doesn't contain repetitive characters
* @param data this is the source String to remove the repetitive characters
* @return String
*/
public static String RemoveDuplicateChar(String s) { StringBuffer sb = new StringBuffer();
int i=0;
for(i=0; i<s.length();i++){
char c=s.charAt(i);
if(i==s.indexOf(c)) {
sb.append(c);
}
}
return sb.toString();
} } class content{ private char key;
private int frequency;
public content(char key, int frequency) {
super();
this.key = key;
this.frequency = frequency;
}
public Character getKey() {
return key;
}
public void setKey(char key) {
this.key = key;
}
public int getFrequency() {
return frequency;
}
public void setFrequency(int frequency) {
this.frequency = frequency;
}
@Override
public String toString() {
return "content [key=" + key + ", frequency=" + frequency + "]";
} }
Java统计一篇文章中每个字符出现的个数的更多相关文章
- N个任务掌握java系列之统计一篇文章中单词出现的次数
问题:统计一篇文章中单词出现的次数 思路: (1)将文章(一个字符串存储)按空格进行拆分(split)后,存储到一个字符串(单词)数组中. (2)定义一个Map,key是字符串类型,保存单词:valu ...
- Java统计一个字符串中各个字符出现的次数
相信很多人在工作的时候都会遇到这样一个,如何统计一个字符串中各个字符出现的次数呢,这种需求一把用在数据分析方面,比如根据特定的条件去查找某个字符出现的次数.那么如何实现呢,其实也很简单,下面我贴上代码 ...
- 一篇文章有若干行,以空行作为输入结束的条件。统计一篇文章中单词the(不管大小写,单词the是由空格隔开的)的个数。
#include <iostream>using namespace std; int k = 0;int n = 0;int main() { char c; char a[1000]; ...
- java统计文档中相同字符出现次数(超详细)
public class test { public static void main(String[] args) throws Exception { InputStream file = new ...
- jieba:统计一篇文章中词语数
jieba官方文档 1.jieba分词的四种模式 精确模式.全模式.搜索引擎模式.paddle模式 精确模式:把文本精确的切分开,不存在冗余单词,适合文本分析: 全模式:把文本中所有可能的词语都扫描出 ...
- Python - 统计一篇文章中单词的频率
def frenquence_statistic(file_name): frequence = {} for line in open(file_name,'r').readlines(): wor ...
- js将一篇文章中多个连续的<br>标签替换成两个连续的<br>标签
写本文的目的是今天恰好有一个之前做SEO的同事问我怎样把一篇文章中多个连续的br标签替换成两个连续的br标签,这里就牵涉到SEO层面的问题了. 在做SEO优化的时候,其中有一个需要注意的地方就是尽量减 ...
- 统计一个文件中出现字符'a'的次数
# -*- coding: utf-8 -*- #python 27 #xiaodeng #统计一个文件中出现字符'a'的次数 #http://www.cnblogs.com/hongten/p/ho ...
- Excel 中如何快速统计一列中相同字符的个数(函数法)
https://jingyan.baidu.com/article/6d704a132ea17328da51ca78.html 通过excel快速统计一列中相同字符的个数,如果很少,你可以一个一个数. ...
随机推荐
- sklearn学习7-----决策树(tree)
1.使用示例 2.树模型参数:[很多参数都是用来限制树过于庞大,即担心其过拟合] # 1.criterion gini or entropy:用什么作为衡量标准 ( 熵值或者Gini系数 ). ...
- JavaScript 运行机制 & EventLoop
JavaScript 运行机制 & EventLoop 看阮老师博客和自己的理解,记录的学习笔记,js的单线程和 事件EventLoop 机制. 1. JavaScript是单线程 JavaS ...
- C语言实现将一个整形数转换为两个字节16进制
有时候要用到这个转换,这里记录一下,例如把 int a = 164 转换储存在数组里为 uint8_t b[0]=0x00 , b[1]=0xA4 . 很简单,转换如下: b[0] = a > ...
- HDU 4332 Contest 4
顶好的一道题.其实,是POJ 2411的升级版.但POJ 2411我用的插头DP来做,一时没想到那道题怎么用状态DP,于是回头看POJ 2411那一道的状态DP,其实也很简单,就是每一行都设一个状态, ...
- ZOJ 3688
做出这题,小有成就感 本来已打算要用那个禁位的排列公式,可是,问题在于,每个阶乘前的系数r的求法是一个难点. 随便翻了翻那本美国教材<组合数学>,在容斥原理一章的习题里竟有一道类似,虽然并 ...
- Default Document <defaultDocument> IIS中的默认页面
https://docs.microsoft.com/en-us/iis/configuration/system.webserver/defaultdocument/index Default do ...
- SaltStack介绍——SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流
SaltStack介绍和架构解析 简介 SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltSta ...
- scanf正则表达式
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> void main() { ] = ...
- POJ 3269 中位数
题意: 思路: 这道题坑也不少.. 你准备好脑洞了么? 首先 要认真审题 题目中有说:"没有两头牛的吃草位置是相邻的" 这句话让我们省了很多的事儿 (Discuss里有的大神就入了 ...
- POJ 2189 枚举
题意: n头牛,p长度的道路,问至多包括c头牛的道路最长有多长. 思路: 按照题意暴力就好-- 注意边界. // by SiriusRen #include <cstdio> #inclu ...