Java_Hashtableと正規表現 の変更点 - アールメカブ

アールメカブ


Java_Hashtableと正規表現 の変更点


[[Programming]]

 public static void main(String[] args) {
	String line;
	int max;
	Vector v = new Vector();
	Vector lv = new Vector();
	Hashtable h = new Hashtable();
	
	String filename  = "test.vec";//オリジナルトークンのベクター
	String listfile = "list.txt";
	// オリジナルベクターファイルの読み込み
	try {
		FileReader fr = new FileReader(filename);
		BufferedReader br = new BufferedReader(fr);
		try {
			while((line = br.readLine()) != null){
			String newline = new String(line.trim());
				v.addElement(newline);
				//System.out.println(newline);
			}
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	} catch (FileNotFoundException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	// リストベクター ファイルの読み込み
	try {
		FileReader fr2 = new FileReader(listfile);
		BufferedReader br2 = new BufferedReader(fr2);
		try {
			while((line = br2.readLine()) != null){
				String newline = new String(line.trim());
				lv.addElement(newline);
				//System.out.println(newline);
				
			}
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
	} catch (FileNotFoundException e1) {
		// TODO Auto-generated catch block
		e1.printStackTrace();
	}
	
	
	
	MyRandomize ran = new MyRandomize(v);
	Vector resV = ran.getVec();
	
	/**
	 * ランダム化されたトークンベクターと
	 * リストベクターの要素を比較する
	 */
	
	Enumeration e = resV.elements();
	String letter;
	String list;
	
	
//	Perl5Util p5u = new Perl5Util();
	
	Integer i;
	//System.out.println("before first while");
	while(e.hasMoreElements()){//ランダム化されたベクトルの要素と
		letter = (String) e.nextElement();
		System.out.println("letter = " + letter);
		Enumeration el = lv.elements();
		while(el.hasMoreElements()){
			list = (String) el.nextElement();//リストの要素を
			Pattern p = Pattern.compile("^" + list + "$");
			Matcher reg = p.matcher(letter);
			System.out.println("list = " + list );
			if(reg.find()){
				System.out.println("matched");
				if(h.containsKey(letter)){
					i = (Integer) h.get(letter);
                                        //登録済みならカウトアップ
					int myint = i.intValue();
					myint++;
					i = new Integer(myint);
					h.put(letter,i);
				}else{
					i = new Integer(1);//新規登録
					h.put(list,i);
				}
			}else{
				System.out.println("not matched");
			}
		}
	}
//	 登録されたトークンと頻度の対応を表示	
	Enumeration eh = h.keys();
	System.out.println("before hash table number = " + h.size());
	while(eh.hasMoreElements()){
		String word = (String) eh.nextElement();
		Integer i1 = (Integer) h.get(word);
		String i2 = i1.toString();
		System.out.println(word + " " + i2);
	}