计算最长英语单词链

这次的思路首先是从文件中读取,然后将单词写入到一个单词数组里,下面就是对数组进行操作了。首先获取每个单词的第一个字母和最后一个字母,然后就判断是否是首尾相连,首先将第单词写进StringBuffer对象里面,如果后面是首尾相连,再依次写进对象里面,最后将对象写进输出文件中。至于各个阶段判断,只需要用if语句进行判断就行,下面是详细的代码:

package test;

import java.applet.Applet;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Lian2 {

    public static void main(String[] args) throws IOException {
        // TODO 自动生成的方法存根

        String filename ="D:\\大二下\\软件工程\\input.txt";
        File  a=new  File(filename);
     //judeFileExists(a);
     if(judeFileExists(a))
        {
            danci(filename);
        }
     else
        {
         System.out.println("文件不存在");
        }
         
        
    }

    public static void danci(String s) throws IOException {
           
            BufferedReader br = new BufferedReader(new FileReader(s));
            StringBuffer sb = new StringBuffer();
            String text = null;
            while ((text = br.readLine()) != null) {
                sb.append(text);// 将读取出的字符追加到stringbuffer中
            }
            br.close(); // 关闭读入流
            String str = sb.toString().toLowerCase(); // 将stringBuffer转为字符并转换为小写
            String[] words = str.split("[^(a-zA-Z)]+"); // 非单词的字符来分割,得到所有单词
            if(words.length==1)
            {
                if("".equals(words[0]))
                System.out.println("文件中无单词");
                else
                    System.out.println("文件中只有一个单词");
            }

            else
            {
                StringBuffer yao = new StringBuffer();
                String b1=words[0];
                yao.append(b1);
                yao.append(" ");
                //System.out.println(b1);
                String end=b1.substring(b1.length()-1,b1.length());
                //System.out.println(end);
               for(int i=1;i<words.length;i++)
               {  
                String start=words[i].substring(0,1);
                if(end.equals(start))
                {
                    end=words[i].substring(words[i].length()-1,words[i].length());
                    yao.append(words[i]);
                    yao.append(" ");
                }
                
               }

              String t=yao.toString();            
              if("apple ".equals(t))
              {
                  System.out.println("没有首尾相连的单词");
              }
               File file =new File("D:\\大二下\\软件工程\\output1.txt");
                try {
                     file.createNewFile();
                } catch (IOException e) {
                   e.printStackTrace();      
               }
              
                try {
                    
                      FileWriter fw =new FileWriter(file);
                      fw.write(yao.toString());
                      fw.flush();
                      fw.close();
                }
                catch (IOException e) {
                       e.printStackTrace();      
                   }
            }
         
    }


// 判断文件是否存在
public static boolean judeFileExists(File file) {

    if (file.exists()) {
        
        return true;
    } else {
        System.out.println("文件不存在");
        // try {
        //     file.createNewFile();
       //  } catch (IOException e) {
       // TODO Auto-generated catch block
      //      e.printStackTrace();      
     //   }
        return false;
    }
}
// 判断文件夹是否存在(未修改)
public static void judeDirExists(File file) {

    if (file.exists()) {
        if (file.isDirectory()) {
            System.out.println("dir exists");
        } else {
            System.out.println("the same name file exists, can not create dir");
        }
    } else {
        System.out.println("dir not exists, create it ...");
        file.mkdir();
    }

}
}

 

posted on 2019-06-08 20:22  打篮球的Curry  阅读(137)  评论(0编辑  收藏  举报