今日课上测试题总结-计算最长英语单词链
今天软工课上老师给的课堂作业总结一下
先看一下效果,
正常情况
没有文件
文件内容为空
单词数目为1
输入文件
成功输出到文件
主要代码,注释写的比较详细
1 import java.io.*; 2 import java.util.*; 3 4 public class FoundMax { 5 6 public static void main(String[] args)throws FileNotFoundException, IOException { 7 8 File input_file=new File("input.txt"); 9 File output_file=new File("output.txt"); 10 11 if(!input_file.exists()) 12 { 13 System.out.println("不存在此文件,无法进行"); 14 } 15 else if(input_file.exists() && input_file.length() == 0) { 16 System.out.println("文件内容为空,无法进行"); 17 } 18 else 19 { 20 ArrayList<ArrayList<String>> all_list=new ArrayList(); 21 22 BufferedReader br=new BufferedReader(new FileReader(input_file)); 23 BufferedWriter bw = new BufferedWriter(new FileWriter(output_file)) ; 24 String s=br.readLine();//将文本文件中的所有信息变为字符串 25 26 int i,j; 27 28 String last_char; 29 String []s1=s.split(" ");//以空格为分割划分每个单词,s1为所有单词的数组 30 31 if(s1.length==1) 32 System.out.println("只有一个单词,无法计算最长英语单词链"); 33 else 34 { 35 System.out.println("你录入的单词为"); 36 for(i=0;i<s1.length;i++) 37 { 38 System.out.println(s1[i]); 39 } 40 for(j=0;j<s1.length;j++)//从第一个单词开始遍历,先拿第一个词做开头 41 { 42 ArrayList<String> list=new ArrayList<String>();//创建一个临时list 43 last_char=s1[j].substring(s1[j].length()-1);//取出每个单词最后一个字母 44 list.add(s1[j]);//把开头单词加入list 45 for(i=1;i<s1.length;i++)//再一个个遍历后面的单词 46 { 47 48 if(last_char.equals(s1[i].substring(0, 1)))//比对当前单词最后一个字母是否与比对的单词开头字母一致 49 { 50 list.add(s1[i]);//如果是,把这个单词往容器里添 51 last_char=s1[i].substring(s1[i].length()-1);//添加完成后把添加的单词末尾字母提取出来 52 } 53 else 54 continue; 55 } 56 all_list.add(list);//当前轮次遍历完成后把所得的容器加入容器的容器 57 } 58 int max=0; 59 int count=0; 60 61 for(i=0;i<all_list.size();i++)//把所有容器的长度比较一下,找出最长的 62 { 63 if(max<all_list.get(i).size()) 64 { 65 max=all_list.get(i).size(); 66 count=i; 67 } 68 } 69 System.out.print("最长英语单词链是:"); 70 for(i=0;i<all_list.get(count).size();i++) 71 { 72 System.out.print(all_list.get(count).get(i));//遍历打印 73 System.out.print(" ");//遍历打印 74 bw.write(all_list.get(count).get(i));//遍历输出到文件 75 bw.write(" "); 76 } 77 System.out.print("长度为:"); 78 System.out.print(all_list.get(count).size()); 79 br.close(); 80 bw.close(); 81 } 82 } 83 } 84 85 }
作者:冰稀饭Aurora
出处:https://www.cnblogs.com/rsy-bxf150/p/17162010.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端