请教高手,请大家帮帮忙。。。散分!!! 希望各位大哥们能帮帮忙,真的很想学好JAVA谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 实现思路:1)使用正则表达式和文件类来共同实现:import java.io.*;import java.util.regex.*;2)将文件类容按行读取,并拼接成字符串:File f=new File("*.txt");String s=null;String a="";while((s=f.readLine())!=null) a=a+s;//拼接3)然后再用正则表达式进行解析 import java.io.*;import java.util.regex.*;public class CountWord{ public static void main(String args[]) throws Exception{ File f=new File("a.txt"); FileInputStream fis=new FileInputStream(f); BufferedReader br=new BufferedReader(new InputStreamReader(fis)); String str=null; String total=""; while((str=br.readLine())!=null){ total=total+str+" "; sort(total); } /* *将文件中的各个单词进行计数,并按照出现的次数从大到小进行排列 *如果次数相同,则按照单词在字典中的顺序出现 */ public static void sort(String total){ Pattern p=Pattern.compile("[,!;\\.\\s\\?]+"); String result[]=p.split(total); int num=result.length; int k=1; String s[]=new String[num]; int wordnum[]=new int[num]; for(int i=0;i<num;i++){ s[i]=""; wordnum[i]=0; } System.out.println("-------Word Value----------------Count Word---------"); for(int i=0,m=0;i<num;i++,m++){ for(int j=i+1;j<num;j++) if(result[i].equals(result[j]) && !result[i].equals("") && !result[j].equals("")){ k=k+1; result[j]=""; } s[m]=result[i]; wordnum[m]=k; k=1; } for(int i=0;i<num;i++) for(int j=i+1;j<num;j++){ if(wordnum[i]<wordnum[j] && wordnum[i]!=0 && wordnum[j]!=0){ int n=wordnum[i]; String temp=s[i]; wordnum[i]=wordnum[j]; s[i]=s[j]; wordnum[j]=n; s[j]=temp; } if(wordnum[i]==wordnum[j] && wordnum[i]!=0 && wordnum[j]!=0 && s[i].compareTo(s[j])>0){ int n=wordnum[i]; String temp=s[i]; wordnum[i]=wordnum[j]; s[i]=s[j]; wordnum[j]=n; s[j]=temp; } } for(int m=0;m<num;m++) if(!s[m].equals("")) System.out.println(s[m]+"\t\t\t\t"+wordnum[m]); }}由于时间关系,我只是对单词出现的频率进行了统计并按照从大到小排序,出现次数相同的单词按单词在字典中的顺序排列,没有来得及对文件的格式正确性进行判断 JAVA正则,Matcher类几个方法求指点 java怎么把本地图片以最快的速度读入inputstream里面? java有没有语音识别方面编程的API?在线等高手的指教.... JcomboBox事件监听建立 Java 的运行环境是什么 java 怎么调用 vf数据库文件 大家来讨论一下发展方向!!! 看过《数据结构与算法》(java版)谈谈一下感想? 怎样在java里四舍五入? freejava为什么会出现fail process? 急,jcreator安装小问题,在线等 求助各位高手for的另类语法
import java.io.*;
import java.util.regex.*;
2)将文件类容按行读取,并拼接成字符串:
File f=new File("*.txt");
String s=null;
String a="";
while((s=f.readLine())!=null)
a=a+s;//拼接
3)然后再用正则表达式进行解析
import java.util.regex.*;
public class CountWord{
public static void main(String args[]) throws Exception{
File f=new File("a.txt");
FileInputStream fis=new FileInputStream(f);
BufferedReader br=new BufferedReader(new InputStreamReader(fis));
String str=null;
String total="";
while((str=br.readLine())!=null){
total=total+str+" ";
sort(total);
}
/*
*将文件中的各个单词进行计数,并按照出现的次数从大到小进行排列
*如果次数相同,则按照单词在字典中的顺序出现
*/
public static void sort(String total){
Pattern p=Pattern.compile("[,!;\\.\\s\\?]+");
String result[]=p.split(total);
int num=result.length;
int k=1;
String s[]=new String[num];
int wordnum[]=new int[num];
for(int i=0;i<num;i++){
s[i]="";
wordnum[i]=0;
}
System.out.println("-------Word Value----------------Count Word---------");
for(int i=0,m=0;i<num;i++,m++){
for(int j=i+1;j<num;j++)
if(result[i].equals(result[j]) && !result[i].equals("") && !result[j].equals("")){
k=k+1;
result[j]="";
}
s[m]=result[i];
wordnum[m]=k;
k=1;
}
for(int i=0;i<num;i++)
for(int j=i+1;j<num;j++){
if(wordnum[i]<wordnum[j] && wordnum[i]!=0 && wordnum[j]!=0){
int n=wordnum[i];
String temp=s[i];
wordnum[i]=wordnum[j];
s[i]=s[j];
wordnum[j]=n;
s[j]=temp;
}
if(wordnum[i]==wordnum[j] && wordnum[i]!=0 && wordnum[j]!=0 && s[i].compareTo(s[j])>0){
int n=wordnum[i];
String temp=s[i];
wordnum[i]=wordnum[j];
s[i]=s[j];
wordnum[j]=n;
s[j]=temp;
}
}
for(int m=0;m<num;m++)
if(!s[m].equals(""))
System.out.println(s[m]+"\t\t\t\t"+wordnum[m]);
}
}
由于时间关系,我只是对单词出现的频率进行了统计并按照从大到小排序,出现次数相同的单词按单词在字典中的顺序排列,没有来得及对文件的格式正确性进行判断