java读取txt文件并检测其中哪些字符出现次数最高

该txt文件中有如下信息:1.给定字符串Stringstr="12345678.89";定义一个方法完成以功能如下Stringstr2="¥12,345,678.89";... 该txt文件中有如下信息:

1.给定字符串
String str = "12345678.89";
定义一个方法完成以功能如下

String str2 = "¥12,345,678.89";

2.给定一个文本文件,你需要检测其中哪写字符出现次数最高

小弟只会读取该txt文件 不知道怎么遍历然后把该字符出现次数最高的字符输出,代码如下:
package com.sinojava;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Work2 {

public static void main(String[] args) throws IOException {

FileReader fr = new FileReader("d:\\作业.txt");
BufferedReader br = new BufferedReader(fr);
String content = " ";

String line = br.readLine();
while(line!=null){
content = content+line+"";
line = br.readLine();

}
System.out.println(content);

fr.close();
br.close();
}

}
请问怎么做才能检测其中哪写字符出现次数最高??谢谢
展开
 我来答
NormaL08
2013-10-31 · TA获得超过479个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:157万
展开全部
因为你是文本,其中的字符是ASCII. 一共有256个ASCII。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.*;

public class Work2 {

public static void main(String[] args) throws IOException {

FileReader fr = new FileReader("d:\\作业.txt");
BufferedReader br = new BufferedReader(fr);
String content = " ";

String line = br.readLine();
while(line!=null){
content = content+line+"";
line = br.readLine();

}
System.out.println(content);

//code added here

int[] letters = new int[256];
int max = 0;

for(int i = 0; i < content.length(); i++)
if(++letters[(int)content.charAt(i)] > max)
max = letters[(int)content.charAt(i)];

System.out.println("Max appearance is " + max);

for(int i = 0; i < letters.length; i++)
if(letters[i] == max)
System.out.print((char)i + " ");

fr.close();
br.close();
}

}
彭永良123
2013-11-05
知道答主
回答量:11
采纳率:0%
帮助的人:2.6万
展开全部
本人做了方法,只能对字符进行统计,得输入string类型的字符串,代码如下:
public String getBigCountStr(String m){
char[] n = m.toCharArray();
StringBuilder sb = new StringBuilder();
for(char nn : n){
if(!(sb.indexOf(""+nn)>-1)){
sb.append(""+nn);
}
}
String ownData = sb.toString();
int c = 0;
List li = new ArrayList();
char[] a = ownData.toCharArray();
for(char d : a){
int index = 1;
int addr = m.indexOf(d);
while(m.indexOf((""+d),addr + 1)>-1){
addr = m.indexOf((""+d),addr) + 1;
index ++;
}
if(index>c){
c = index;
li.removeAll(li);
li.add(d);
}else if(index==c){
li.add(d);
}
}
System.out.println(c); // 字符出现次数
for(int i = 0;i<li.size();i++){
System.out.print(li.get(i) + "|"); // 出现的字符
}

return "";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-30
展开全部
用Map<Char,Integer>来统计
追问
可以写个代码给我吗??谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式