java,php,asp.net,linux,javascript,mysql,mssql,oracle,编程

java全角半角转换

Java代码 
  1. package com.test;  
  2.   
  3. public class test {  
  4.     public static void main(String[] args) {  
  5.     String QJstr = "hello";  
  6.     String QJstr1 = "he,。h‘“”e";  
  7.   
  8.     String result = BQchange(QJstr);  
  9.     String result1 = QBchange(QJstr1);  
  10.   
  11.     System.out.println(QJstr + "\n" + result);  
  12.     System.out.println(QJstr1 + "\n" + result1);  
  13.     }  
  14.   
  15.     //半角转全角  
  16.     public static final String BQchange(String QJstr) {  
  17.     String outStr = "";  
  18.     String Tstr = "";  
  19.     byte[] b = null;  
  20.   
  21.     for (int i = 0; i< QJstr.length(); i++) {  
  22.     try {  
  23.     Tstr = QJstr.substring(i, i + 1);  
  24.     b = Tstr.getBytes("unicode");  
  25.     } catch (java.io.UnsupportedEncodingException e) {  
  26.     e.printStackTrace();  
  27.     }  
  28.     if (b[3] != -1) {  
  29.     b[2] = (byte) (b[2] - 32);  
  30.     b[3] = -1;  
  31.     try {  
  32.     outStr = outStr + new String(b, "unicode");  
  33.     } catch (java.io.UnsupportedEncodingException e) {  
  34.     e.printStackTrace();  
  35.     }  
  36.     } else  
  37.     outStr = outStr + Tstr;  
  38.     }  
  39.     return outStr;  
  40.     }  
  41.   
  42.     //全角转半角  
  43.     public static final String QBchange(String QJstr) {  
  44.     String outStr = "";  
  45.     String Tstr = "";  
  46.     byte[] b = null;  
  47.   
  48.     for (int i = 0; i< QJstr.length(); i++) {  
  49.     try {  
  50.     Tstr = QJstr.substring(i, i + 1);  
  51.     b = Tstr.getBytes("unicode");  
  52.     } catch (java.io.UnsupportedEncodingException e) {  
  53.     e.printStackTrace();  
  54.     }  
  55.     if (b[3] == -1) {  
  56.     b[2] = (byte) (b[2] + 32);  
  57.     b[3] = 0;  
  58.     try {  
  59.     outStr = outStr + new String(b, "unicode");  
  60.     } catch (java.io.UnsupportedEncodingException e) {  
  61.     e.printStackTrace();  
  62.     }  
  63.     } else  
  64.     outStr = outStr + Tstr;  
  65.     }  
  66.     return outStr;  
  67.     }  
  68.       
  69.   
  70.     /**/// /  
  71.     /// 转全角的函数(SBC case)  
  72.     ///  
  73.     /// 任意字符串  
  74.     ///全角字符串  
  75.     ///  
  76.     ///全角空格为12288,半角空格为32  
  77.     ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248  
  78.     ///  
  79.     public static String ToSBC(String input) {  
  80.     //半角转全角:  
  81.     char[] c = input.toCharArray();  
  82.     for (int i = 0; i< c.length; i++) {  
  83.     if (c[i] == 32) {  
  84.     c[i] = (char12288;  
  85.     continue;  
  86.     }  
  87.     if (c[i]< 127)  
  88.     c[i] = (char) (c[i] + 65248);  
  89.     }  
  90.     return new String(c);  
  91.     }  
  92.   
  93.     /**/// /  
  94.     /// 转半角的函数(DBC case)  
  95.     ///  
  96.     /// 任意字符串  
  97.     ///半角字符串  
  98.     ///  
  99.     ///全角空格为12288,半角空格为32  
  100.     ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248  
  101.     ///  
  102.     public static String ToDBC(String input) {  
  103.     char[] c = input.toCharArray();  
  104.     for (int i = 0; i< c.length; i++) {  
  105.     if (c[i] == 12288) {  
  106.     c[i] = (char32;  
  107.     continue;  
  108.     }  
  109.     if (c[i]> 65280&& c[i]< 65375)  
  110.     c[i] = (char) (c[i] - 65248);  
  111.     }  
  112.     return new String(c);  
  113.     }  
  114. }  

转载请注明:http://www.pmjava.com/?thread-62958-1.html

posted on 2009-06-20 03:18 rrong_m 阅读(1133) 评论(0)  编辑  收藏

<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

随笔档案

文章分类

文章档案

java编程

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜