设计思想:

将文件中的单词存入ArrayList数组中,分为前后两个数组,读入单词,经单词字母分解并且通过循环比较单词字母是否相同,相同写入结果文件,不同继续比较,直至找到最大接龙单词长度。

源程序代码:

package 单词接龙;
import java.io.BufferedWriter;
import java.io.IOException;
import java.util.ArrayList;
public class FineWord
{public ArrayList<String> words = new ArrayList<>();public ArrayList<String> wordsList = new ArrayList<>();public boolean compare(String a, String b){a = a.toLowerCase();b = b.toLowerCase();return (a.substring(a.length() - 1).equals(b.substring(0, 1)));}public void fileSplit(String path) throws Exception{MyFile file = new MyFile();String theFileString = file.get(path);if (theFileString == null){return;}if (theFileString.equals("")){throw new Exception("空文件");}for (String word : theFileString.split("\\,|\\.| |\\(|\\)|\\;|\\:|\"|\\?|\\!|\\'|  |\\、|\\”|\\“")){if (!word.equals("")){words.add(word);}}if (words.size() <= 1){throw new Exception("文件内单词过少(只有" + words.size() + "个词)");}}public void wordWrite(int index, String path) throws Exception{MyFile file = new MyFile();BufferedWriter bf = file.put(path);wordsList.add(words.get(index));try{for (String string : words){if (compare(wordsList.get(wordsList.size() - 1), string)){wordsList.add(string);bf.append(string);bf.newLine();}}bf.close();} catch (IOException e){// TODO 自动生成的 catch 块
            e.printStackTrace();}if (wordsList.size() <= 1){throw new Exception("文件内无单词链");}}public static void main(String[] args){FineWord aFineWord = new FineWord();try{aFineWord.fileSplit("d://input1.txt");aFineWord.wordWrite(0, "d://output1.txt");System.out.println(aFineWord.wordsList);} catch (IOException e){System.out.println("无此文件");} catch (Exception e){System.out.println(e.getMessage());}}
}

程序结果:

单个单词无接龙输出首个单词

总结:这次计算单词链最长长度,使我清楚地认识到将单词长句分解,可以实现很多功能,遇到问题不要慌张,把问题步揍化这样会更加简单。

转载于:https://www.cnblogs.com/1502762920-com/p/10991770.html

java -英语单词接龙相关推荐

  1. java英语单词测试_Java 英语单词自测

    Java英语单词自测小游戏 编写初衷 记英语单词的时候,不知道记没记住,所以写了个检测的程序,在检测的同时,也能够复习之前学习的. 任务目标 创建数据库 Java编写代码(没写成GUI,觉着写成GUI ...

  2. Java 算法 单词接龙

    目录标题 题目描述 解题思路 代码 题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个 ...

  3. java英语单词学习网站 Vue项目源码介绍

    本软件是一款高智能化的英语学习软件,具备查阅复习内容,复习进度,以及复习提醒等功能:还需具有复习汇总等功能.用户可无限扩充自己的词库,能随心所欲地制作出适合自己的词库,达到快速记单词,读音,词义的效果 ...

  4. 【附源码】计算机毕业设计java英语单词记忆系统设计与实现

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  5. java英语单词总结

    基础----进阶 A. array数组accessible 可存取的  area面积audio 音频   addition  加法  action 行动  arithmetic 算法adjustmen ...

  6. Java英语单词(5000个)

    Java基础常见英语词汇 OO:  面向对象 OOP: object-oriented programming,面向对象编程 JDK:Java development kit, java开发工具包 J ...

  7. Java英语单词大全

    Java基础常见英语词汇(70个) OO: object-oriented ,面向对象 OOP: object-oriented programming,面向对象编程 JDK:Java develop ...

  8. JAVA英语单词(带音标)

    Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的                             ['prəʊɡræmɪŋ]编程 OO: object ...

  9. Java英语单词(语言基础)

    byte:                  字节型 short:                 短整型 int:                   整型 long:         长整型 fl ...

最新文章

  1. eclipse 安装svn插件
  2. Linux下开启/关闭防火墙命令
  3. java rpm包安装_rpm包安装java jar开机自启
  4. mysql的纵向扩展方案_SQL Server横向扩展方案-SODA
  5. 《Raspberry Pi用户指南》——2.3 Debian简介
  6. LPC1758串口ISP下载程序
  7. 在可见性变小的时代,如何修复网络问题?
  8. hello world_AngularJS Hello World示例
  9. C++20 模式下将启用协程支持 CC 11
  10. 软件需求工程与UML建模第十二周作业
  11. 不用+、-、×、÷数字运算符做加法
  12. 解决Tomcat在cmd乱码问题
  13. 考研复试常见问题(数据库系统概论篇)
  14. VMware Explore 2022 China,赋能中国企业加速实现云智能
  15. 贸易相关术语[C-E]
  16. HTML5期末大作业:设计网站设计——动漫设计响应式(10页) HTML+CSS+JavaScript 动漫设计制作 简单静态HTML网页作品 动漫设计作业成品 学生个人网站模板
  17. IE无法上网,但其他浏览器可以
  18. 使用QueryList解析微信文章
  19. 一个小屁孩对父母说的经典话
  20. -2147483648是不是int常量

热门文章

  1. 成绩忽好忽坏的孩子,往往缺乏良好的学习习惯--一语中的
  2. Apache中间件漏洞深析
  3. 2017下半年掘金日报优质文章合集:Android篇,靠着这份190页的面试资料
  4. 解锁的Facebook其实是很容易的
  5. leetcode动态规划之零钱兑换问题
  6. 海关179号公文接入
  7. ht城市介绍人口数量Html,人口规模
  8. android颜色透明度百分比
  9. SQL之ignore关键字
  10. JS常用正则表达式和JS控制输入框输入限制(数字、汉字、字符)