zoukankan      html  css  js  c++  java
  • 《软件测试》课程-第二次作业

    题目一:写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。

    package test1;

      import java.io.BufferedReader;
      import java.io.FileReader;
      import java.util.ArrayList;
      import java.util.Collections;
      import java.util.Comparator;
      import java.util.List;
      import java.util.Map;
      import java.util.TreeMap;
      import java.util.regex.Matcher;
      import java.util.regex.Pattern;
     
      public class WordCount {
         public void run() throws Exception {
             
             long time1 = System.currentTimeMillis();
             BufferedReader reader = new BufferedReader(new FileReader(
                    "D:\wordtest.txt"));
             StringBuffer buffer = new StringBuffer();
             String line = null;
            while ((line = reader.readLine()) != null) {
                buffer.append(line);
            }
            reader.close();
            Pattern expression = Pattern.compile("[a-zA-Z]+");// 定义正则表达式匹配单词
            String string = buffer.toString();
             Matcher matcher = expression.matcher(string);//
            Map<String, Integer> map = new TreeMap<String, Integer>();
            String word = "";
             int times = 0;
            while (matcher.find()) {// 是否匹配单词
                 word = matcher.group();// 得到一个单词-树映射的键
                if (map.containsKey(word)) {// 如果包含该键,单词出现过
                   times = map.get(word);// 得到单词出现的次数
                     map.put(word, times + 1);
                } else {
                    map.put(word, 1);// 否则单词第一次出现,添加到映射中
                }
             }
            /*
              * 核心:如何按照TreeMap 的value排序而不是key排序.将Map.Entry放在集合里,重写比较器,在用
             * Collections.sort(list, comparator);进行排序
             */

            List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(
                    map.entrySet());
            /*
             * 重写比较器
              * 取出单词个数(value)比较
              */
            Comparator<Map.Entry<String, Integer>> comparator = new Comparator<Map.Entry<String, Integer>>() {
                 public int compare(Map.Entry<String, Integer> left,
                         Map.Entry<String, Integer> right) {
                    return (left.getValue()).compareTo(right.getValue());
                }
            };
             Collections.sort(list, comparator);// 排序
            // 打印
             int last = list.size() - 1;
             try{
                for (int i = last; i > last-10; i--) {
                    String key = list.get(i).getKey();
                    Integer value = list.get(i).getValue();
                    System.out.print("Top"+i+"  : ");
                    System.out.println(key + " " + value);
                }
             }catch(Exception e){
                 //System.out.println("");
             }
             long time2 = System.currentTimeMillis();
             System.out.print("耗时:");
             System.out.println(time2 - time1+"ms");
         }
     }

    }

    package test1;

    import static org.junit.Assert.*;

    import org.junit.Test;

    public class WordCountTest {

        @Test
        public void test() throws Exception {
            WordCount wordtest=new WordCount();
            wordtest.run();
            
        }

    }

    题目二:把一个英语句子中的单词次序颠倒后输出

    package test2;

    import java.util.Scanner;
    public class StringDemo {

    public void run(){
    Scanner in=new Scanner(System.in);
    while(true){
    String s=in.nextLine();
    if(s.equalsIgnoreCase("quit")){
    System.exit(0);
    }
    String[] ss=s.split("\s+");
    StringBuffer sb=new StringBuffer();
    for (int i=ss.length-1;i>=0;i--){
    sb.append(ss[i]+" ");
    }
    System.out.println(sb);
    }
    }
    }
    package test2;

    import static org.junit.Assert.*;

    import org.junit.Test;

    public class StringDemoTest {

        @Test
        public void test() {
            StringDemo stringdemo=new StringDemo();
            stringdemo.run();
        }

    }



  • 相关阅读:
    7.4mybatis整合ehcache(mybatis无法实现分布式缓存必须和其他缓存框架整合)
    Mybatis-利用resultMap 输出复杂pojo
    1.2MyBatis介绍
    1Mybatis入门--1.1单独使用jdbc编程问题总结
    AJAX的来龙去脉(由来)-如何被封装出来的--ajax发送异步请求(四步操作)
    人人权限 添加一张表查询出来
    salesforce lightning零基础学习(九) Aura Js 浅谈二: Event篇
    salesforce lightning零基础学习(八) Aura Js 浅谈一: Component篇
    salesforce lightning零基础学习(七) 列表展示数据时两种自定义编辑页面
    salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件
  • 原文地址:https://www.cnblogs.com/lzc88/p/5292858.html
Copyright © 2011-2022 走看看