统计文件字符个数 java_如何统计个文件中的字符个数

一个朋友问到了统计文件字符数的问题。就找了两个。

import java.io.*;

public class Execute_char

{

final int MAX = 9999;

int length = 0;

public char[] char_arr = new char[MAX];

Execute_char()

{

for(int i = 0;i

char_arr[i] = '*';

}

int input_file(String s)//用来输入文件并返回字符的个数

{

try

{

FileReader text = new FileReader(s);

int inByte;

int i=0;

do

{

inByte = text.read();

if(inByte != -1)

char_arr[i++] = ((char)inByte);

}

while(inByte != -1);

text.close();

}

catch(Exception e)

{;}

for(length=0;char_arr[length] != '*'; length++ )

{

System.out.print(char_arr[length]);

}

return length;

}

int count_word(String s)//用来统计某个单词出现的个数

{

char [] word_arr = s.toCharArray();

int word_num = 0;//用来统计单词出现的次数

for(int i=0; i

{

if(char_arr[i] == word_arr[0])

{

int t = 0;//对所要查找字符的计数器初始化为"0"

int m = i;

for(int j = 0;j

{

if(word_arr[j++] == char_arr[m++])

{

t++;

}

}

if(t == word_arr.length )

word_num++;

}

}

System.out.println(s+"出现的次数是:"+word_num);

return word_num;

}

void replace (String a , String b)//用b来替换

{

int b_length = b.length();

int a_length = a.length();

int x = b_length - a_length;

char [] word_a_arr = a.toCharArray();

char [] word_b_arr = b.toCharArray();

for(int j=0; j

{

if(char_arr[j] == word_a_arr[0])

{

int t = 0;//对所要查找字符的计数器初始化为"0"

int m = j;

for(int k = 0;k

{

if(word_a_arr[k++] == char_arr[m++])

{

t++;

}

}

if(t == a_length)

{

int jj = j;

for(int mm = length ; mm>=jj+a_length; char_arr[mm+x] = char_arr[mm],mm--)

{;}

for(int i = 0;i

{

char_arr[j++] = word_b_arr[i++];

}

}

}

}

for(int i=0;char_arr[i]!='*';i++)

System.out.print(char_arr[i]);

System.out.println();

}

void encrypt_to_file(String f)

{

System.out.println("加密后的文件已经输入到"+f+"中,请查看!");

for(int i = 0; i

{

char_arr[i] = (char)(char_arr[i] +3);

try

{

FileWriter letters = new FileWriter(f);

for(int j=0;j

{

letters.write(char_arr[j]);

}

letters.close();

}

catch(Exception e){;}

}

}

void out_put_file(String f)

{

try

{

FileWriter letters = new FileWriter(f);

for(int i=0;i

{

letters.write(char_arr[i]);

}

letters.close();

}

catch(Exception e){;}

}

}

//*************************************************************************

public class Txt_main //本程序用数组实现了这些功能,除基本输入输出外没有调用API

{

public static void main(String[] args)

{

String word = new String("Italy");//可以把Italy换成其他词也可以执行

Execute_char aaa = new Execute_char();

int file_len = aaa.input_file("input.txt");//这个文件要自己建一个,名字可以自己设定

System.out.println("文件中字符的个数是:"+file_len);

aaa.count_word(word);

aaa.replace("Italy","Germany");//前面是被替换的单词,后面是去替换的单词,可以任意设定

aaa.out_put_file("output.txt");//替换后输出的结果到这个文件,文件需要自己建。名字可以自己起,在本行中改动文件名字即可

aaa.encrypt_to_file("cryptograph.txt");//加密后输出到文件,文件需要自己建。名字可以自己起,在本行中改动文件名字即可

}

}[/code]

前面的是业务类后面的是执行类,希望高手能写一个简单的程序出来,有的地方可能能用到API,我没有用,希望有人写个简单一点的

这是另外一个:

import java.util.Iterator;

import java.util.Map;

import java.util.Scanner;

import java.util.TreeMap;

public class TestTongji {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner input = new Scanner(System.in);

System.out.println("请输入一段字符:");

String str = input.nextLine();

Map oos = new TreeMap();

for(int i=0;i

char ch = str.charAt(i);

if(!oos.containsKey(ch)) {

oos.put(ch, 1);

}else{

int auto =oos.get(ch)+1;

oos.put(ch, auto);

}

}

Iterator ois = oos.keySet().iterator();

while(ois.hasNext()){

char temp = ois.next();

System.out.println(temp+"="+oos.get(temp));

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值