首页 / JAVA / 判断java中最多的词组
判断java中最多的词组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了判断java中最多的词组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5404字,纯文字阅读大概需要8分钟。
内容图文
![判断java中最多的词组](/upload/InfoBanner/zyjiaocheng/829/fe01ac1b178a4e34847e7405249e8db4.jpg)
其中的难点,是空格,以及如果第一个是空格怎么办,虽然事后看着很简单,但是做的时候却十分的困难!
static void Daunyu()throws IOException{
??? Word word=new Word();????????????????????????????????????? //单词的链头
??? Word lian,xin;????????????????????????????????????????????
??? String str="";
??? FileReader f=new FileReader("E:\\578095023\\FileRecv\\软件工程\\课堂测试\\读入txt\\飘英文版.txt");??????????????? //读取英文文件
??? char[] c=new char[1];???????????????????????????????? //每次读取一个字母
??? int b=0;
??? boolean exist=false;????????????????????????????? //判断单词是否存在于? word 链中
??? Word word1=new Word();
??? Word lian1,xin1;
??? String str1="";
??? FileReader f1=new FileReader("E:\\578095023\\FileRecv\\软件工程\\课堂测试\\读入txt\\stopwords.txt");??
??? char[] c1=new char[1];
??? int b1=0;
??? boolean exist1=false;
??? //stopwords文本
? while((b1=f1.read(c1))!=-1)????????????????????????????? //每次读取一个字母直到最后
???? {
???????? //如果字符为? 换行、空格、单引号、双引号、逗号、句号? 则为一个单词的结束及另一个单词的开始
???????? if(String.valueOf(c1).equals("\r")||String.valueOf(c1).equals("\n")||String.valueOf(c1).equals(" ")||String.valueOf(c1).equals(",")||String.valueOf(c1).equals(".")||String.valueOf(c1).equals("\"")||String.valueOf(c1).equals("'"))
???????? {
???????? ?
???????????? lian1=word1;
???????????? while(lian1!=null)???????????
???????????? { ???????????? ?if(lian1.value.equalsIgnoreCase(str1))?????????? //如果单词在单词链中存在,则单词个数++
???????????????? {
???????????????????? lian1.geshu++;exist1=true;break;
???????????????? }
???????????????? else
???????????????? {
???????????????????? lian1=lian1.next;
???????????????? }
????????????????
???????????? } ???????????? if(exist1==false)??????????????????????? //如果不存在,则在单词链中添加
???????????? {
???????????????? xin1=new Word(str1,1);
???????????????? xin1.next=word1.next;
???????????????? word1.next=xin1;
???????????????? str1="";
???????????? }
???????????? else
???????????? {
???????????????? exist1=false;
???????????????? str1="";
???????????? }
???????? }
???????? else????????????????????????????????????? //单词
???????? {
???????????? str1+=String.valueOf(c1);
???????? }
???? }??????????????????????????? //判断单词是否存在于? word 链中
???? while((b=f.read(c))!=-1)????????????????????????????? //每次读取一个字母直到最后
???? {
???? ?
???? ?
???? ?
???????? //如果字符为? 换行、空格、单引号、双引号、逗号、句号? 则为一个单词的结束及另一个单词的开始
???????? if(String.valueOf(c).equals("‘")||String.valueOf(c).equals("’")||String.valueOf(c).equals("”")||String.valueOf(c).equals("“")||String.valueOf(c).equals("\r")||String.valueOf(c).equals("\n")||String.valueOf(c).equals(",")||String.valueOf(c).equals(".")||String.valueOf(c).equals("\"")||String.valueOf(c).equals("'"))
???????? {
???????? ?
???????????? lian=word;
???????????? while(lian!=null)???????????
???????????? { ???????????? ?if(lian.value.equalsIgnoreCase(str))?????????? //如果单词在单词链中存在,则单词个数++
???????????????? {
???????????????????? lian.geshu++;exist=true;break;
???????????????? }
???????????? ?? else
?????????????????? {
?????????????????? ?int l1=0,l2=0;
?????????????????? ?while(true)
????????????? ?? {
????????????? ??? xin1=new Word("",0);
????????????? ????????? lian1=word1.next;
????????????? ????????? //找到单词链中个数最多的
????????????? ????????? while(lian1!=null)
????????????? ????????? {
????????????? ???????????? if(str.equals(lian1.value))
????????????? ???????????? {
????????????? ????????? ??? l1=1;
????????????? ???????????? }
????????????? ????????????? lian1=lian1.next;
????????????? ?????????????
????????????? ????????? }??????
????????????? ??? if(lian1==null)
????????????? ??? {
????????????? ???? break;
????????????? ??? }
????????????? ?? } ??????????????????? ?if(str.startsWith(" "))
??????????????????? ?{
??????????????????? ??str=str.substring(1);
?
??????????????????? ?}
?????????????????? ?if(l1==1||!str.contains(" "))
?????????????????? ?{
?????????????????? ??break;
?????????????????? ?}
?????????????????????? lian=lian.next;
?????????????????? }
????????????????
???????????? } ???????????? if(exist==false)??????????????????????? //如果不存在,则在单词链中添加
???????????? {
???????????????? xin=new Word(str,1);
???????????????? xin.next=word.next;
???????????????? word.next=xin;
???????????????? str="";
???????????? }
???????????? else
???????????? {
???????????????? exist=false;
???????????????? str="";
???????????? }
???????? }
???????? else????????????????????????????????????? //单词
???????? {
???????????? str+=String.valueOf(c);
???????? }
???? }
????
????
???? //?? 循环10次
???? System.out.println("请输入您想查询的前几个出现此处最多的单词");
??Scanner scan=new Scanner(System.in);
??int N=scan.nextInt();
???? for(int i=1;i<=N;i++)??????????????????
???? {
???????? xin=new Word("",0);
???????? lian=word.next;
???????? //找到单词链中个数最多的
???????? while(lian!=null)
???????? {
???????????? if(lian.geshu>xin.geshu)
???????????? {
???????????????? xin=lian;
???????????? }
???????????? lian=lian.next;
???????? }
???????? //输出单词链中个数最多的
???????? System.out.println("第"+i+"个 :"+xin.value+"个数:"+xin.geshu);
???????? lian=word;
???????? //删除单词链中单词个数最多的
???????? while(lian.next!=null)
???????? {
???????????? if(lian.next.value.equalsIgnoreCase(xin.value))
???????????? {
???????????????? lian.next=lian.next.next;
???????????????? break;
???????????? }
???????????? lian=lian.next;
???????? }
???? }
?}
内容总结
以上是互联网集市为您收集整理的判断java中最多的词组全部内容,希望文章能够帮你解决判断java中最多的词组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。