KWIC问题:tokenizer/arraylist in java

来源:互联网 发布:淘宝新店有扶持吗 编辑:程序博客网 时间:2024/06/11 11:40

利用arraylist.add()方法时,需要实例化arraylist,否则会报错。




import java.io.BufferedReader; 

import java.io.FileReader; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Iterator;
import java.util.StringTokenizer; 
public class Kwic1 {


/**
* @param args
*/
private ArrayList<String> kwicList== new ArrayList<String>(); 
private BufferedReader inputFile;
public Kwic1(String fileName){
String line;
fileOpen(fileName);

try {
while((line=inputFile.readLine())!=null){
System.out .println("the line is "+line);
parseLine(line);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
display(kwicList);
}
//利用游标遍历LIST
public void display(ArrayList<String>list){
Iterator<String> it=  list.iterator();
while(it.hasNext()){
System.out .println("the list is "+it.next().toString());
}
}




public void fileOpen(String fileName){
try{
inputFile=new BufferedReader(new FileReader(fileName));
}
catch(Exception e){
System.err.print("wrong");
System.exit(1);
}
}


public void parseLine(String line){
//获取每个单词,存入tokens
StringTokenizer token=new StringTokenizer(line);
ArrayList<String>tokens=new ArrayList<String>();
int i=0;
//循环添加单词

int count=token.countTokens();
while(i<count){
//System.out .println(token.nextToken().toString());
tokens.add(token.nextToken());
i++;
}

//display(tokens);
//切割各个单词,不断改变起始值和利用loop实现位移。
for(i=0;i<count;i++){
StringBuffer lineBuffer=new StringBuffer();
int index=i;
System.out .printf("i is %d",i);
for(int f=0;f<count;f++){

//从头继续位移
if(index>=count)
index=0;
//存入StringBuffer
lineBuffer.append(tokens.get(index));
lineBuffer.append(" ");
index++;
}
String tmp=lineBuffer.toString();
//System.out .println("the buffer is "+tmp);
kwicList.add(tmp);

}

}
public static void main(String[] args) {

     new Kwic1("D:\\FilePath.txt");
}


}
0 0
原创粉丝点击