开发者社区> gnuhpc> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【Java习作】KWIC模拟

简介: 作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ package org.bupt.kwic; import java.io.BufferedReader; import java.
+关注继续查看

作者: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/


               作者:gnuhpc
               出处:http://www.cnblogs.com/gnuhpc/
               除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。


分享到:

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java国际化/本地化实战(下)
Java国际化/本地化实战(下)
48 0
Java虚拟机(六):Java虚拟机栈-栈帧
Java虚拟机栈中栈帧的具体说明
2933 0
java虚拟机
java虚拟机会将管理的内存划分为若干个不同的数据区域,如下图其中虚拟机栈、本地方法栈、程序计数器是线程隔离的,即每个线程都拥有自己的虚拟机栈、本地方法栈、程序计数器。方法区、堆这两块内存是所有线程间共享的 程序计数器 当前线程所执行的字节码的行号指示器(指示器工作时就说通过改变这个计数器的值来选取下一条需要执行的字节码指令、分支、循环、跳转、异常处理等)。
1121 0
java多态
java引用变量有2中类型:   (1)编译时类型:由声明该变量时使用的类型决定。   (2)运行时类型:由实际赋给该变量的对象决定。 如果编译时类型和运行时类型出现不一致时,就可能出现多态! 看下面的程序: 引用变量bc和sc编译时类型和运行时类型完全相同,没有任何问题。
543 0
java 两种缓存
引用:http://blog.csdn.net/kangojian/article/details/5266714 JAVA缓存有两种: 一、文件缓存,是指把数据存储在磁盘上,可以XML格式,也可以序列化文件DAT格式还是其它文件格式。
547 0
java虚拟机
Java内存模型 程序计数器内存中较小的内存空间,通过计数器的值可以选取下一条执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 线程私有,生命周期跟线程相同。
854 0
+关注
406
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载