데이터베이스 테이블 이름 에 따라 사전 을 생 성하 여 입력 법 을 가 져 옵 니 다.입력 이 편리 하 다.

2766 단어 자바C++cGoogleC#
/* * 데이터베이스 테이블 이 많 고 테이블 이름 이 너무 길 기 때문에 주의 하지 않 으 면 입력 오류 가 발생 하기 쉽다. * 입력 이 편리 하도록 각 표 단어의 머리 문 자 를 추출 하여 입력 법의 단축 키 로 한다. * 단축 키 는 실제 표 이름과 일일이 대응 하여 사전 을 생 성 합 니 다.입력 법 을 가 져 옵 니 다.필 자 는 Google 입력 법 을 예 로 들 었 습 니 다. *  * example: * ehd->ELE_HISTORY_DEFINITION * eccs->ELE_CUSTTRADE_CONTRL_SET */
import java.io.File;
import java.io.FileReader;
import java.io.LineNumberReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class DictGenerator {

	/**
	 * @param args
	 * @throws IOException 
	 * @throws InterruptedException 
	 */
	
	private List<String> lst = new ArrayList<String>();
	
	private Map<String , String> dict = new HashMap<String , String>();
	
	//  key  ,       
	private  int maker = 1;
	
	public static void main(String[] args) throws Exception {

		String path = "C:\\s.txt";
		
		DictGenerator dic = new DictGenerator();
		
		dic.locatedFile(path);
		
		dic.calc();
		
	}
	/*
	 *   key
	 */
	public  String generate(String original){
		
		StringBuilder outputStr = new StringBuilder();
		
		char prefix = original.trim().charAt(0);
		
		outputStr.append(Character.toString(prefix));
		
		for ( int i = 0 ; i<original.trim().length();i++ ){
			
			if ( original.charAt(i) == '_'){
				char key = original.charAt(i+1);
				outputStr.append(Character.toString(key));
			}
		}

		String key = outputStr.toString().toLowerCase();;
		
		// key        ,  !
		if ( !lst.contains(key) ){
			lst.add(key);
			dict.put(key, original);
			return key;
		}else{
			String temp = key + (maker++);
			lst.add(temp);
			dict.put(temp, original);
			return temp;
		}
	}
	
	/*
	 *      ,  key     。
	 */
	public  void locatedFile(String sourcePath) throws Exception{
		
		FileReader reader = new FileReader(new File(sourcePath));
		
		LineNumberReader br = new LineNumberReader(reader);
		
		String str = null;
		
		while ( (str=br.readLine()) != null){
			System.out.print(this.generate(str)+ "\t");
			System.out.println(str);
			
			
		}
		
		br.close();
		reader.close();
		
	}
	
	public  void calc(){
		System.out.println("list  :" + lst.size());
		System.out.println("map   :" + dict.size());
	}
}

좋은 웹페이지 즐겨찾기