ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java——计算最长英语单词链

2019-06-12 11:51:09  阅读:267  来源: 互联网

标签:英语单词 String i1 word Java text new txt 最长


设计思路:

首先将一个文本文件里面的单词读出来放入一个一维数组里面,方便操作。之后将单词的第一个字母和最后一个字母分别存入新创建的一维数组里面。而后通过循环进行判断便可以得到接龙单词链。

源代码:

package longword;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Main {
 public static int findwordlong(String text){
  String[] array = {".",",","?","!"};
  for (int i1 = 0; i1 < array.length; i1++) {
   text = text.replace(array[i1]," ");
  }
  String[] textArray = text.split(" ");
  return textArray.length;
 }
 public static String[] findword(String text){
  String[] array = {".",",","?","!","“","”"," "};
  for (int i1 = 0; i1 < array.length; i1++) {
   text = text.replace(array[i1]," ");
  }
  String[] textArray = text.split(" ");
  return textArray;
 }
 public static String readtxt(String txt) throws IOException
 {
  File file = new File(txt);//定义一个file对象,用来初始化FileReader
  FileReader reader = null;
  try {
   reader = new FileReader(file);
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }//定义一个fileReader对象,用来初始化BufferedReader
  BufferedReader bReader = new BufferedReader(reader);//new一个BufferedReader对象,将文件内容读取到缓存
  StringBuilder sb = new StringBuilder();//定义一个字符串缓存,将字符串存放缓存中
  String s = "";
  while ((s =bReader.readLine()) != null) {//逐行读取文件内容,不读取换行符和末尾的空格
  sb.append(s);//将读取的字符串添加换行符后累加p存放在缓存中
  }
  bReader.close();
  String str = sb.toString();
  return str;
 }
    public static void appendMethodB(String fileName, String content) {
        try {
            //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件,如果为 true,则将字节写入文件末尾处,而不是写入文件开始处
            FileWriter writer = new FileWriter(fileName, true);
            writer.write(content);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static boolean judeFileExists(String txt) throws IOException {
     File file = new File(txt);
     if (!file.exists()) {
      System.out.println("文件不存在!");
         return false;
     }
     else if(file.length() == 0)
     {
      System.out.println("文件为空!");
      return false;
     }
     String str=readtxt("input.txt");
     if(findwordlong(str)==1)
     {
      System.out.println("文件只有一个单词!");
         return false;
     }
     else
      {
       return true;
         }
   }
 public static void main(String[] args) throws IOException {
  // TODO Auto-generated method stub
  if(judeFileExists("input.txt"))
  {
   String str=readtxt("input.txt");
   int i;
   int l= findwordlong(str);
   String []word=new String[l];
   char []first=new char[l];
   char []tail=new char[l];
   word=findword(str);
   for(i=0;i<l;i++)
   {
    if(word[i].length()!=0)
   {
    first[i]=word[i].charAt(0);
    tail[i]=word[i].charAt(word[i].length()-1);
    System.out.println(word[i]);
   }
   }
   String stemp=word[0];
   appendMethodB("output.txt", word[0]);
   for(i=1;i<l;i++)
   {
    if(first[i]==stemp.charAt(stemp.length()-1))
    {
     stemp=stemp+"-"+word[i];
     appendMethodB("output.txt", "-"+word[i]);
    }
   }
   if(stemp.equals(word[0]))
   {
    System.out.println("没有首尾相接的单词!");
   }
   else{
    System.out.println(stemp);
   }
  }
 }
}

结果截图:

正常情况:

总结:

 

标签:英语单词,String,i1,word,Java,text,new,txt,最长
来源: https://www.cnblogs.com/ruangongyouxi/p/11008635.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有