全角转半角繁转简大写转小写的工具方法

public class CharCodeUtils {
	private static CharsetConverter cc = new CharsetConverter(10);
	private static Logger logger = Logger.getLogger(CharCodeUtils.class);
	private static boolean hasInit = false;

	/**
	 * 获取配置文件的路径 String[]
	 * 
	 * @return
	 * 
	 */
	private static String getFileLoc() throws DomainException {
		String filePath = "";
		try {
			java.net.URL classUrl = CharCodeUtils.class.getResource("");
			filePath = classUrl.getPath();
		} catch (Exception e) {
			logger.error("获取charmap文件绝对路径失败!");
		}
		logger.info("filePath is :"+filePath);
		if (filePath.indexOf(".jar") != -1) {
			String jarFile = filePath.toString().substring(5,
					filePath.toString().length() - 24);
			logger.info("jarFile is :"+jarFile);
			try {
				JarFileOper jfo = new JarFileOper(jarFile);
				return jfo.extraFileToPath();
			} catch (Exception e) {
				logger.error("解压jar包出错!", e);
				throw new DomainException("can't get charmap file from jar:"
						+ jarFile);
			}
		} else {
			return filePath.toString().substring(0,
					filePath.toString().length() - 22)
					+ "charmap";
		}
	}

	/**
	 * 初始化CharCodeUtils,加载相应的编码配置文件 void
	 * 
	 */
	private static void init() throws DomainException {
		if (!hasInit) {
			String path = getFileLoc() + File.separator;
			cc.setFiles(new String[] {
					path + "uct2s.ctb",// 繁体转简体
					path + "ucs2t.ctb",// 简体转繁体
					path + "ucsbc2dbc.ctb",// 全角转半角
					null, null, path + "ucint2ext.ctb", path + "ucrglt.ctb",
					path + "ucphrase.ctb", });
			cc.init();
			hasInit = true;
		}
	}

	/**
	 * 繁体转简体 void
	 * 
	 * @param orString
	 * 
	 */
	public static String t2s(String orString) throws DomainException {
		init();
		return cc.map(0, orString);
	}

	/**
	 * 简体转繁体 void
	 * 
	 * @param orString
	 * 
	 */
	public static String s2t(String orString) throws DomainException {
		init();
		return cc.map(1, orString);
	}

	/**
	 * 全角转半角 void
	 * 
	 * @param orString
	 * 
	 */
	public static String w2h(String orString) throws DomainException {
		init();
		return cc.map(2, orString);
	}

	/**
	 * StringUtils用到的 String
	 * 
	 * @param orString
	 * @return
	 * @throws DomainException
	 * 
	 */
	public static String QBchange(String orString) throws DomainException {
		init();
		//logger.info("QBchange:" + orString);
		return cc.map(2, cc.map(0, orString));

	}

	/**
	 * 转化特殊符号
	 * 
	 * @param str
	 * @return
	 */
	public static String changeSS(String str) {
		str = StringUtils.replace(str, "`", "·");
		str = StringUtils.replace(str, "'", "’");
		str = StringUtils.replace(str, "\"", "”");
		str = StringUtils.replace(str, ",", ",");
		str = StringUtils.replace(str, ";", ";");
		str = StringUtils.replace(str, ".", "。");
		str = StringUtils.replace(str, ":", ":");
		str = StringUtils.replace(str, "?", "?");
		str = StringUtils.replace(str, "!", "!");
		str = StringUtils.replace(str, "\\", "\");
		str = StringUtils.replace(str, "<", "<");
		str = StringUtils.replace(str, ">", ">");

		return str;
	}

	/**
	 * 主方法 void
	 * 
	 * @param argz
	 * 
	 */
	public static void main(String[] argz) throws DomainException {
		QBchange("abc");
	}

}
posted @ 2011-08-24 14:46  highriver  阅读(727)  评论(0编辑  收藏  举报