java 庀员 从0到1ᅠ绐讠悠字符亠垠悠 件中出现的次数(面讠颠)

java

目录:

1. 编程邠 

2. 方沠 

3. 新悠二

4. 樋沏三

5. 效沜可

6. 出结

正文:

1. 猖穰字目

  写一个方属漧输入一个文件名货币个字签䈆比统计这䂠傠箠串示这会斠䂠䂠Ơ现的毣栁゠

2. 方法一

  废话少说,先来看看方悠一 代码:

public  static int getStringNumberMethod1(String fileName, String str) throws Exception {

int num = 0;

BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName));

String readLine = "";

StringBuffer stringBuffer = new StringBuffer();

while((readLine = bufferedReader.readLine()) != null){

stringBuffer.append(readLine);

}

for(int i = 0; i < stringBuffer.length(); i++){

if(stringBuffer.indexOf(str, i) != -1){

i = stringBuffer.indexOf(str, i);

num++;

}

}

return num;

}

  首先利用输傠 尀文ຠ中的ୗ符䀲都偐傠加亠 StringBuffer中,然后再去这个StringBuffer中纠讠 字 䂠僰炠皠 数,肠邠 注憠的是每次找到对应的字符串斠ᅠ垠接 杠要找炠这个஠符串会发 变化。

3. 方法二

  来看看第京种方法:

public static int getStringNumberMethod2(String fileName, String str) throws Exception {

int num = 0;

BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName));

String readLine = "";

StringBuffer stringBuffer = new StringBuffer();

while((readLine = bufferedReader.readLine()) != null){

stringBuffer.append(readLine);

}

int start = 0;

while( (start = stringBuffer.indexOf(str, start)) != -1){

stringBuffer = stringBuffer.delete(start, start + str.length());

num ++;

}

return num;

}

  第二种方法应该比第一种方法更好理解,就是在找到对应的字符串斠,下一次查悠的宠箠 变成了原来的字符串  出现字符丰位置之前 字 第二种方 炠到了StringBuffer炠delete方法,嚠 在性能上会比第一种 惐à一点。

4. 方沠三

゠ 箠三种方法:

public static int getStringNumberMethod3(String fileName, String str) throws Exception {

int num ;

StringBuffer stringBuffer = new StringBuffer();

BufferedReader bufferedReader = new BufferedReader(new FileReader(fileName));

String readLine = "";

while((readLine = bufferedReader.readLine()) != null){

stringBuffer.append(readLine);

}

num = stringBuffer.toString().split(str).length -1;

return num;

}

  縬三种栁法在查找对应人簦串时i是先将StringBuffer转换成为String,笶后律禂split1币为查找的字符串倂做是一种条件进行分割,忟出的数值凭一伺域自柨戉勩符串的数量。辠秊斋法是不是很巧妙,但是它的性能如何呢,一会我໬揭晓答案。

5. 方法四

  第四种方法:

public static int getStringNumberMethod4(String file, String find) throws Exception

{

int count = 0;

Reader in = new FileReader(file);

int c;

while ((c = in.read()) != -1) {

while (c == find.charAt(0)) {

for (int i = 1; i < find.length(); i++) {

c = in.read();

if (c != find.charAt(i)){

break;

}

if (i == (find.length() - 1)) {

count++;

}

}

}

}

return count;

}

  箠 种方法是一边从文件中利用流读取数据,一边做判断,这种也可以实现辠亠傠 ,但是可想而瞠悠炀 定不是最高的。

6. 总纠

  看完 以上四种方法,不知道大傠瀀  沠 侠 这囐禠 法既然都能达到这个目的,的效率又是最高呢? 特意做 一个悠肠,垠亠亠 件中有50多 个字符, 咠 用辠嚠 方 亠这个文 中查找对应的字符 ,结果如下:

 第一次测试结果(ms)第二次测讠结果(ms第三次测试结果(ms)
方法亠192520
方法二637066
方 䂠252222
方法四625662

 ゠邠过运个表梠皠䂠妠傠 能一目了然。希望大家能够学Ȱ一些东 ,最后送大家一傠 勉 话:如果觉得辛苦,郣一定湉妁显夺蚄䤴标跆f 谢。

以上是 java 庀员 从0到1ᅠ绐讠悠字符亠垠悠 件中出现的次数(面讠颠) 的全部内容, 来源链接: www.h5w3.com/python/703319.html

回到顶部