[java]字符串全半角互转


<pre name="code" class="java">
/**
 * <DL>
 * <DT><B> 功能说明</B></DT>
 * 字符串全半角互转
 * </DL>
 * @author hailan
 */
public class SBCChange {

//	public static void main(String[] args) {
//
//		String QJstr = "全角转半角DAO喆4     ";
//		System.out.println(QJstr.length()+"=length");
//		QJstr.replaceAll("[ ]", "");
//		System.out.println(QJstr.length()+"=replacelengthr");
//		String ToDBCres = ToDBC(QJstr);
//		System.out.println(QJstr + "\nDB" + ToDBCres);
//		
//		String QBres = BQchange(QJstr);
//		System.out.println(QJstr + "\nBQ" + QBres);
//	}

	// 半角转全角
	
	/**
	 * <b>功能说明</b>
	 * 半角汉字转全角汉字
	 * @param QJstr  半角
	 * @return  全角字符串
	 * <p>
	 * <b>例如:</b><br>
	 * 使用例子说明
	 * String a = BQchange("赞同")
	 * </p>
	 */
	public static final String BQchange(String QJstr) {
		String outStr = "";
		String Tstr = "";
		byte[] b = null;

		for (int i = 0; i < QJstr.length(); i++) {
			try {
				Tstr = QJstr.substring(i, i + 1);
				b = Tstr.getBytes("unicode");
			} catch (java.io.UnsupportedEncodingException e) {
				e.printStackTrace();
			}
			if (b[3] != -1) {
				b[2] = (byte) (b[2] - 32);
				b[3] = -1;
				try {
					outStr = outStr + new String(b, "unicode");
				} catch (java.io.UnsupportedEncodingException e) {
					e.printStackTrace();
				}
			} else
				outStr = outStr + Tstr;
		}
		return outStr;
	}

	/**
	 * <b>功能说明</b>
	 * 全角转半角
	 * @param input  全角字符串
	 * @return
	 * <p>
	 * <b>例如:</b><br>
	 * 使用例子说明
	 * String a = ToDBC("re")
	 * </p>
	 */
	public static String ToDBC(String input) {
		char[] c = input.toCharArray();
		for (int i = 0; i < c.length; i++) {
			if (c[i] == 12288) {
				c[i] = (char) 32;
				continue;
			}
			if (c[i] > 65280 && c[i] < 65375)
				c[i] = (char) (c[i] - 65248);
		}
		return new String(c);
	}

}


 
 


你可能感兴趣的:(java)