文件out.txt中内容:
2765<6720<2765
1236===1236===1236
2678---------0267-----0256
567 / 12679 / 2457
2567/4579/4578请编写程序,统计每个数字0~9文件中出现的次数。
结果如下:
文字出现了5行
0出现3次
1出现4次
2出现12次
3出现3次
4出现3次
5出现8次
6出现12次
7出现11次
8出现2次
9出现2次
2765<6720<2765
1236===1236===1236
2678---------0267-----0256
567 / 12679 / 2457
2567/4579/4578请编写程序,统计每个数字0~9文件中出现的次数。
结果如下:
文字出现了5行
0出现3次
1出现4次
2出现12次
3出现3次
4出现3次
5出现8次
6出现12次
7出现11次
8出现2次
9出现2次
public static void main(String[] args) throws Exception {
InputStream in = new FileInputStream(new File("out.txt"));
BufferedReader reader = new BufferedReader(
new InputStreamReader(in));
String line;
int[] counters = new int[10];
int lineCounter = 0;
while( (line = reader.readLine()) != null ) {
lineCounter++;
count(line, counters);
}
System.out.println("文字出现了" + lineCounter + "行");
for(int i=0; i<counters.length; i++) {
System.out.printf("%d出现%d次\n", i, counters[i]);
}
reader.close();
in.close();
}
private static void count(String line, int[] counters) {
for(int i=0; i<line.length(); i++) {
char c = line.charAt(i);
if( Character.isDigit(c) )
counters[c - '0']++;
}
}
}
/**
*
* @param fileName 文件名(完整路径)
* @return
* @author cai
* @date 2012-7-5 上午10:13:39
*/
public static int[] sumDigital(String fileName){
BufferedReader br = null ;
String str = "" ;
int retArr[] = new int[10] ;
List list = new ArrayList() ;
try {
br = new BufferedReader(new FileReader(fileName));
while ((str = br.readLine()) != null) {
list.add(str);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
char c ;
for (int i = 0 ; i < list.size(); i++){
str =(String) list.get(i) ;
for (int j = 0; j < str.length(); j++){
c = str.charAt(j) ;
if (c >= '0' && c <= '9'){
retArr[c - 48]++ ; //字符0 的ascii为 48
}
}
}
return retArr ;
}0 出现次数 :3
1 出现次数 :4
2 出现次数 :12
3 出现次数 :3
4 出现次数 :3
5 出现次数 :8
6 出现次数 :12
7 出现次数 :11
8 出现次数 :2
9 出现次数 :2
/**
*
* @param fileName 文件名(完整路径)
* @return
* @author cai
* @date 2012-7-5 上午10:13:39
*/
public static int[] sumDigital(String fileName){
BufferedReader br = null ;
String str = "" ;
int retArr[] = new int[10] ;
char c ;
try {
br = new BufferedReader(new FileReader(fileName));
while ((str = br.readLine()) != null) {
for (int j = 0; j < str.length(); j++){
c = str.charAt(j) ;
if (c >= '0' && c <= '9'){
retArr[c - 48]++ ; //字符0 的ascii为 48
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return retArr ;
}