重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
import java.io.*;
我们提供的服务有:成都做网站、网站设计、外贸营销网站建设、微信公众号开发、网站优化、网站认证、新巴尔虎右ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的新巴尔虎右网站制作公司
import java.util.Scanner;
public class pinlv {
public static void main(String[] args) throws Exception {
Scanner input = new Scanner(System.in);
System.out.print("Enter a filename: ");
String filename = input.nextLine();
BufferedInputStream fileInput = new BufferedInputStream(
new FileInputStream(new File(filename)));
int[] counts = new int[128];
int r;
while ((r = fileInput.read()) != -1 ) {
counts[(byte)r]++;
}
System.out.printf("%15s%15s\n", "char", "Counts");
for (int i = 0; i counts.length; i++)
if (counts[i] != 0)
System.out.printf("%15c%15d\n", i, counts[i]);
}
}
/**
* @content Java交流群: 178048291
* 取频率最高的结果集
*/
private static SetInteger MaxRate(int[] arrs) {
// 统计个数字的频率
MapInteger, Integer map = new HashMap();
for (int i = 0; i arrs.length; i++) {
if (arrs[i] == 0) {
break;// 为0则结束统计
}
if (map.containsKey(arrs[i])) {
map.put(arrs[i], map.get(arrs[i]) + 1);
} else {
map.put(arrs[i], 1);
}
}
int maxtime = 1; // 出现频数
SetInteger set = new HashSet();// 最高频率的结果集
// 得出最高频率的数
for (Map.EntryInteger, Integer entry : map.entrySet()) {
if (entry.getValue() maxtime) {
maxtime = entry.getValue();// 新最高频数
set.removeAll(set);
set.add(entry.getKey());
} else if (entry.getValue() == maxtime) {
set.add(entry.getKey());
}
}
return set;
}
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Test {
private BufferedReader buf;
public void frequency(String word, String file) {
try {
buf = new BufferedReader(new FileReader(file));
String str = "";
int count = 0;
while ((str = buf.readLine()) != null) {
int index = 0;
while (index != -1) {
index = str.indexOf(word);
if (index == -1) {
break;
}
str = str.substring(index + word.length(), str.length());
count++;
}
}
System.out.println(count);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Test test = new Test();
test.frequency("百度", "data.txt");
}
}
//不懂百度HI我~
哈哈,这个是一种思想,不过也不算复杂的。
比如代码:
String testStr="a1b2c3d4e5";
//这个字符串的长度是10。我们假设就有10个不同的字符。
//用一张2列10行的二维表来描述该情况!这张二维表的第一列表示新出现的字符,对应的第二列表示该字符出现的次数!
主要还是数组遍历查找,得到所有字符(不重复)放到一个2维的存储结构,然后继续统计这些字符的出现次数。