中文標點符號轉英文標點符號 全形轉半形 String工具類
阿新 • • 發佈:2018-11-19
package com.yl.sf; public class StringUtil { /** * 中文標點符號轉英文字標點符號 * * @param str * 原字串 * @return str 新字串 */ public static final String cToe(String str) { String[] regs = { "!", ",", "。", ";", "~", "《", "》", "(", ")", "?", "”", "{", "}", "“", ":", "【", "】", "”", "‘", "’", "!", ",", ".", ";", "`", "<", ">", "(", ")", "?", "'", "{", "}", "\"", ":", "{", "}", "\"", "\'", "\'" }; for (int i = 0; i < regs.length / 2; i++) { str = str.replaceAll(regs[i], regs[i + regs.length / 2]); } return str; } // " “ "" public static void main(String[] args) { // System.out.println(full2Half("你好")); // System.out.println(full2Half("java")); // System.out.println("中文:" + full2Half("你好")); String s = " “中,。,. 國”,國‘家’。5:: : ;;;;4 【】)"; System.out.println(s); System.out.println(cToe(s)); } /** * 判斷字串是否為空或空字串 * * @param str * 原字串 * @return */ public static boolean isEmpty(String str) { return str == null || "".equals(str); } /** * 全形轉半形: * * @param fullStr * @return */ public static final String full2Half(String fullStr) { if (isEmpty(fullStr)) { return fullStr; } char[] c = fullStr.toCharArray(); for (int i = 0; i < c.length; i++) { System.out.println((int) c[i]); if (c[i] >= 65281 && c[i] <= 65374) { c[i] = (char) (c[i] - 65248); } else if (c[i] == 12288) { // 空格 c[i] = (char) 32; } } return new String(c); } /** * 半形轉全形 * * @param halfStr * @return */ public static final String half2Full(String halfStr) { if (isEmpty(halfStr)) { return halfStr; } char[] c = halfStr.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] == 32) { c[i] = (char) 12288; } else if (c[i] < 127) { c[i] = (char) (c[i] + 65248); } } return new String(c); } }