网络爬虫-繁体字转简体字

来源:互联网 发布:邵阳有线网络客服电话 编辑:程序博客网 时间:2024/04/29 21:52

繁体字转简体字

在网络爬虫的过程中获取到的网页源码经常会含有一些繁体字,像维基百科网页上面显示的是简体字但获取到的网页源码中通常要经过转换才可以方便的使用。

下面是繁体转简体字的工具类:

package com.zack.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.URL;import java.util.HashMap;import java.util.Map;public class StringFormater {    // 一个存简繁体数据的Map        private static Map<Character, Character> CHAR_MAP = new HashMap<Character, Character>();        static {            STMapInitialize();        }        /**         * 初始化CHAR_MAP里面的数据         */        public static void STMapInitialize() {            try {                URL mapf = StringFormater.class.getResource("st.map");//存放在class文件所在包下面,是一个保存繁体字跟简体字对应的文本。                InputStream mapInput = mapf.openStream();                BufferedReader mapbf = new BufferedReader(new InputStreamReader(                        mapInput, "utf-8"));                String rline;                while ((rline = mapbf.readLine()) != null) {                    CHAR_MAP.put(rline.charAt(1), rline.charAt(0));                }                mapInput.close();            } catch (IOException e) {                e.printStackTrace();                throw new ExceptionInInitializerError("没有找到资源文件st.map");            }        }    /**     * 这是一个把繁体字符串转换简体字符串     *      * @param source     *            要进行转换的繁体字符串     * @return 返回转换后的简体字符串     */    public static String TrandtionalToSimplified(String source) {        if (source == null) {            return null;        }        StringBuffer result = new StringBuffer();        try {            for (int i = 0; i < source.length(); i++) {                char tmp = source.charAt(i);                if (CHAR_MAP.containsKey(tmp)) {                    result.append(CHAR_MAP.get(tmp));                } else {                    result.append(tmp);                }            }        } catch (NullPointerException e) {            STMapInitialize();            return TrandtionalToSimplified(source);        }        return result.toString();    }}
原创粉丝点击