读书人

Java全角半角变换(转载)

发布时间: 2012-10-07 17:28:51 作者: rapoo

Java全角半角转换(转载)

package com.test;            public class test {          public static void main(String[] args) {          String QJstr = "hello";          String QJstr1 = "he,。h‘“”e";                String result = BQchange(QJstr);          String result1 = QBchange(QJstr1);                System.out.println(QJstr + "\n" + result);          System.out.println(QJstr1 + "\n" + result1);          }                //半角转全角          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;          }                //全角转半角          public static final String QBchange(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] = 0;          try {          outStr = outStr + new String(b, "unicode");          } catch (java.io.UnsupportedEncodingException e) {          e.printStackTrace();          }          } else          outStr = outStr + Tstr;          }          return outStr;          }                          /**/// /          /// 转全角的函数(SBC case)          ///          /// 任意字符串          ///全角字符串          ///          ///全角空格为12288,半角空格为32          ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248          ///          public static String ToSBC(String input) {          //半角转全角:          char[] c = input.toCharArray();          for (int i = 0; i< c.length; i++) {          if (c[i] == 32) {          c[i] = (char) 12288;          continue;          }          if (c[i]< 127)          c[i] = (char) (c[i] + 65248);          }          return new String(c);          }                /**/// /          /// 转半角的函数(DBC case)          ///          /// 任意字符串          ///半角字符串          ///          ///全角空格为12288,半角空格为32          ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248          ///          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);          }      }


本文出自:http://goby2008.iteye.com/blog/413249

读书人网 >编程

热点推荐