zoukankan      html  css  js  c++  java
  • 计算最长英语单词链

    用户需求:

    英语的26 个字母的频率在一本小说中是如何分布的?

    某类型文章中常出现的单词是什么?

    某作家最常用的词汇是什么?

    参考他人代码如下:

    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);
                }
            }
        }
    }
    

      

  • 相关阅读:
    初等数论及其应用——Lucas定理
    数据结构编程实验——chapter10-应用经典二叉树编程
    Coursera课程 Programming Languages 总结
    Coursera课程 Programming Languages, Part C 总结
    读《如何阅读一本书》有感
    Educational Codeforces Round 34
    Coursera课程 Programming Languages, Part B 总结
    Codeforces #451 Div2 F
    Codeforces #452 Div2 F
    Coursera课程 Programming Languages, Part A 总结
  • 原文地址:https://www.cnblogs.com/shnm/p/11071721.html
Copyright © 2011-2022 走看看