package com.platform.common.utils;

import org.apache.commons.lang.StringUtils;

public class StringKit {

	public static Integer[] convertStrToInt(String str, String regex) {

		if (StringUtils.isBlank(str) || StringUtils.isBlank(regex))
			return new Integer[0];

		String[] strs = str.split(regex);
		if (strs == null || strs.length <= 0)
			return new Integer[0];
		Integer[] result = new Integer[strs.length];
		for (int i = 0; i < strs.length; i++) {
			result[i] = Integer.valueOf(strs[i]);
		}
		return result;
	}

	/**
	 * 判断字符是否英文半角字符或标点<br>
	 * 32~126
	 * 
	 * @param c
	 *            字符
	 * @return 是否为半角字符
	 */
	private static Boolean IsBjChar(char c) {
		int i = (int) c;
		return i >= 32 && i <= 126;
	}

	/**
	 * 判断字符是否为全角字符<br>
	 * 全角字符-65248 = 半角字符<br>
	 * 全角空格除外
	 * 
	 * @param c
	 *            字符
	 * @return 是否为全角字符
	 */
	private static Boolean IsQjChar(char c) {
		if (c == '\u3000') {
			return true;
		}

		int i = (int) c - 65248;
		if (i < 32) {
			return false;
		}
		return IsBjChar((char) i);
	}

	/**
	 * 将字符串转为半角字符串
	 * 
	 * @param src
	 *            字符串
	 * @return 半角字符串
	 */
	static String toBj(String src) {
		if (StringUtils.isBlank(src)) {
			return src;
		}

		char[] s = src.toCharArray();
		StringBuilder sb = new StringBuilder(s.length);
        for (char value : s) {
            if (value == '\u3000') {
                sb.append('\u0020');
            } else if (IsQjChar(value)) {
                sb.append((char)((int) value - 65248));
            } else {
                sb.append(value);
            }
        }
		return sb.toString();

	}
}
