作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

package org.bupt.kwic;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class mykwic {
    private static BufferedReader input_file;
    private ArrayList<String> kwicList;
    public mykwic (String filename)   //construct the index of file fname
    {
        kwicList = new ArrayList<String>();
        String line="";
        fileopen(filename);
        while (line!= null)
        {
            line= readline();
            if (line !=null)
            {
                parseLine(line, kwicList);
            }
          }
         //Collections.sort(kwicList);
         display ( kwicList );
    }
    public static void fileopen(String InputFilename) {
        try {
            input_file = new BufferedReader(new FileReader(InputFilename));
        } catch (IOException e) {
            System.err.println(("File not open" + e.toString()));
            System.exit(1);
        }
    }
    public static String readline() {
        String line ="";
        try {
            line = input_file.readLine();
        } catch (Exception e) {
            e.getStackTrace();
        }
        return line;
    }
    public void parseLine(String line,ArrayList<String> list) {
        StringTokenizer tokener = new StringTokenizer(line);
        String token = new String();
        int index;
        ArrayList<String> tokens = new ArrayList<String>();
        int count = tokener.countTokens();
        for (int j = 0; j < count; j++) {//将一行解析,并且将解析的word加入ArrayList中
            token = tokener.nextToken();
            tokens.add(token);
        }
        //对ArrayList中的字进行循环移位,得出最后结果
        for (int i = 0; i < count; i++) {
            index=i;
            StringBuffer linebuffer = new StringBuffer();
            for (int j = 0; j < count; j++) {
                if (index >= count)
                      index = 0;
                    linebuffer.append ( tokens.get(index)  );
                    linebuffer.append (" ");
                    index++;
            }
            line = linebuffer.toString();
            kwicList.add(line);
        }
    }
    public static void  display(ArrayList<String> List) {
        System.out.println("Output is");
        for (int count = 0; count < List.size(); count++) {
              System.out.println (List.get (count) );
        }
    }
    public static void main(String[] args) {
            new mykwic("test.txt");
    }
}

作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/

转载于:https://www.cnblogs.com/gnuhpc/archive/2013/01/04/2843799.html

【Java习作】KWIC模拟相关推荐

  1. Java 使用 URLConnection 模拟 Http Get和Post 提交

    2019独角兽企业重金招聘Python工程师标准>>> Java 使用 URLConnection 模拟 Http Get和Post 提交. 1.URLConnectionHelpe ...

  2. Mockito:一个强大的用于Java开发的模拟测试框架

    介绍 本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用Mockito的Java示例. 模拟(Mock)的概念 在软件开发的世界之外, "mock"一 ...

  3. 无忧考吧2017二级java_二级Java模拟软件|无忧考吧二级Java语言程序设计模拟软件下载 v2017.03官方版 - 121下载站...

    无忧考吧二级Java语言程序设计模拟软件是专为准备考试二级JAVA语言的朋友打造的一款在线模拟软件,二级JAVA语言的考试理论上是非常简单的, 大家只需要掌握基本的语法和一些简单的编程就可能了,这款软 ...

  4. 【练习题】构造方法 编写Java程序,模拟简单的计算器。

    package day09; /*1.[练习题]构造方法 编写Java程序,模拟简单的计算器. 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有.编写构造方法,赋予n1和n2初 ...

  5. Java制作一个盒子程序_编写一个简单的Java程序,模拟计算器的功能。

    提问:编写一个简单的Java程序,模拟计算器的功能. 网友回答: 程序参考: import java.awt.*; import java.awt.event.ActionEvent; import ...

  6. Java枚举(用Java普通类模拟枚举的实现原理及JDK枚举API使用示例)

    枚举的特点: ◆类型安全(Type Safety)  ◆紧凑有效的枚举数值定义(Compact, Efficient Declaration of Enumerated Values)  ◆无缝的和程 ...

  7. 【算法】java 用 数组 模拟 队列

    本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 文章目录 1.概述 1.概述 本次使用java 用 数组 模拟 队列 package com.algor ...

  8. Java——使用多线程模拟真实高并发业务并保证安全性(一)

    作者专注于Java.架构.Linux.小程序.爬虫.自动化等技术. 工作期间含泪整理出一些资料,微信搜索[javaUp],回复 [java][黑客][爬虫][小程序][面试]等关键字免费获取资料.技术 ...

  9. Java线程同步-模拟买票

    文章首发于 2020-11-29 知乎文章:Java线程同步-模拟买票 作者:落雨湿红尘(也是我o) 01 导语 本文使用JAVA代码模拟买票场景下的业务交互,通过示例讲解线程的初始化.线程同步等ja ...

  10. 【java毕业设计】基于java+swing的模拟写字板设计与实现(毕业论文+程序源码)——模拟写字板

    基于java+swing的模拟写字板设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing的模拟写字板设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需要下载开题报 ...

最新文章

  1. 低版本不能使用php 命令,创建软链接
  2. sql server 备份与恢复系列一 必备知识
  3. 5分钟安全顾问 - 针对家庭办公室用户的简单防火墙安装
  4. 使用IDEA创建一个Servlet应用程序
  5. 关于扫描的一个比较好的网站
  6. PHP 与Memcache 分布式
  7. sql server 2014安装方法教程
  8. 解决python中join路径分隔符跨平台移植性
  9. java linux 调用32位so_从linux源码看socket(tcp)的timeout
  10. HCIP-RS-GRE
  11. 修改PHP上传文件的大小限制(post)
  12. json 字符串和json对象之间相互转换
  13. 【元胞自动机】基于matlab元胞自动机双通道交通【含Matlab源码 1657期】
  14. OCJP认证该不该考?
  15. 必看,关于sql的慢查询及解决方案
  16. 对话系统调查:近期进展与新前沿
  17. 文件传输协议FTP/TFTP/SSH/SCP——应用层
  18. Python利用PyQt5制作一个获取网络实时数据NBA数据播报GUI
  19. Linux 知:coredump
  20. 前端js,join()方法

热门文章

  1. influx没有web_influxdb 安装及简单使用
  2. JavaScript二进制、八进制和十六进制数值
  3. linux线程同步 eventfd,用 eventfd 在线程之间通信
  4. python 高级_Python高级特性(一)
  5. 阿里云搭建流媒体服务器
  6. 接口规范 9. 推流认证相关接口
  7. webpack静态资源地址注入html,Webpack4+ 多入口程序构建
  8. java中string类相等_Java中String类的常见面试题
  9. 一步一步学习Servlet之Cookie使用
  10. Java中包、导包、修饰符和内部类