见谅未能注明出处:

  1     第一种方法:
  2     /**
  3      * 特殊字符串转换
  4      * @Class Name FullCharConverter
  5      * @Author v-jiangwei
  6      * @Create In 2012-8-24
  7      */
  8     public class FullCharConverter {
  9
 10     /**
 11     * 全角转半角的 转换函数
 12     * @Methods Name full2HalfChange
 13     * @Create In 2012-8-24 By v-jiangwei
 14     * @param QJstr
 15     * @return String
 16     */
 17     public static final String full2HalfChange(String QJstr)
 18     {
 19     StringBuffer outStrBuf = new StringBuffer("");
 20     String Tstr = "";
 21     byte[] b = null;
 22     for (int i = 0; i < QJstr.length(); i++) {
 23     Tstr = QJstr.substring(i, i + 1);
 24     // 全角空格转换成半角空格
 25     if (Tstr.equals(" ")) {
 26     outStrBuf.append(" ");
 27     continue;
 28     }
 29     try {
 30     b = Tstr.getBytes("unicode");
 31     // 得到 unicode 字节数据
 32     if (b[2] == -1) {
 33     // 表示全角
 34     b[3] = (byte) (b[3] + 32);
 35     b[2] = 0;
 36     outStrBuf.append(new String(b, "unicode"));
 37     } else {
 38     outStrBuf.append(Tstr);
 39     }
 40     } catch (UnsupportedEncodingException e) {
 41     // TODO Auto-generated catch block
 42     e.printStackTrace();
 43     }
 44
 45     } // end for.
 46     return outStrBuf.toString();
 47
 48
 49     }
 50
 51
 52
 53     /**
 54     * 半角转全角
 55     * @Methods Name half2Fullchange
 56     * @Create In 2012-8-24 By v-jiangwei
 57     * @param QJstr
 58     * @return String
 59     */
 60     public static final String half2Fullchange(String QJstr)
 61     {
 62     StringBuffer outStrBuf = new StringBuffer("");
 63     String Tstr = "";
 64     byte[] b = null;
 65     for (int i = 0; i < QJstr.length(); i++) {
 66     Tstr = QJstr.substring(i, i + 1);
 67     if (Tstr.equals(" ")) {
 68     // 半角空格
 69     outStrBuf.append(Tstr);
 70     continue;
 71     }
 72     try {
 73     b = Tstr.getBytes("unicode");
 74     if (b[2] == 0) {
 75     // 半角
 76     b[3] = (byte) (b[3] - 32);
 77     b[2] = -1;
 78     outStrBuf.append(new String(b, "unicode"));
 79     } else {
 80     outStrBuf.append(Tstr);
 81     }
 82     return outStrBuf.toString();
 83     } catch (UnsupportedEncodingException e) {
 84     // TODO Auto-generated catch block
 85     e.printStackTrace();
 86     }
 87
 88     }
 89     return outStrBuf.toString();
 90     }
 91
 92
 93     /**
 94     * @Methods Name main
 95     * @Create In 2012-8-24 By v-jiangwei
 96     * @param args
 97     *            void
 98     */
 99     public static void main(String[] args) {
100     // TODO Auto-generated method stub
101     String QJstr = "814乡道";
102     String result = FullCharConverter.full2HalfChange(QJstr);
103     System.out.println(QJstr);
104     System.out.println(result);
105     System.out.println("------------------------------------");
106     // 半角转全角
107     String str = "G45大广高速";
108     System.out.println(str);
109     System.out.println(FullCharConverter.half2Fullchange(str));
110     }
111
112
113     }
114     第二种方法:
115     /**
116          * 半角转全角
117          * @param input String.
118          * @return 全角字符串.
119          */
120     public static String ToSBC(String input) {
121              char c[] = input.toCharArray();
122              for (int i = 0; i < c.length; i++) {
123                if (c[i] == ' ') {
124                  c[i] = '\u3000';
125                } else if (c[i] < '\177') {
126                  c[i] = (char) (c[i] + 65248);
127
128
129                }
130              }
131              return new String(c);
132     }
133
134          /**
135          * 全角转半角
136          * @param input String.
137          * @return 半角字符串
138          */
139      public static String ToDBC(String input) {
140          char c[] = input.toCharArray();
141               for (int i = 0; i < c.length; i++) {
142                 if (c[i] == '\u3000') {
143                   c[i] = ' ';
144                 } else if (c[i] > '\uFF00' && c[i] < '\uFF5F') {
145                   c[i] = (char) (c[i] - 65248);
146
147
148                 }
149               }
150               String returnString = new String(c);
151               return returnString;
152      }
153         public static void main(String[] args) {
154         String QJstr = "G45大广高速";
155     String result = StringUtil.ToDBC(QJstr);
156     System.out.println(result);
157
158     }

这里面对第一种说明下,对于一个字符,当转换为unicode编码时候,所对应的byte数组,第三个值对应0或者1,0代表半角,1代表全角

转载于:https://www.cnblogs.com/shizhongtao/p/3957717.html

关于全角半角转换(转)相关推荐

  1. java 全角_java字符全角半角转换

    序 本文展示一下如何将char进行半角与全角转换. 术语 全角 SBC case Sexagesimal to Binary Converter 60进制转为2进制 半角 DBC case Decim ...

  2. html自动半角转全角,全角半角转换就是这么简单

    在Excel表格中输入数字的时候有时会发现数字的间距特别大,这不仅不美观还占位置,那么到底是什么原因导致这样呢?其实数字间距大是因为输入法的全角半角,只要我们切换下就可以轻松解决问题了,接下来小编就来 ...

  3. Java 全角半角转换工具类

    /*** @author: lee* @Date: 2018/11/29 09:56* @Description: 全角半角转换工具类*/ public class AsciiUtil {public ...

  4. java 全角数字 转 数字_JavaScript数字全角半角转换代码教程

    javascript数字全角半角转换代码教程 ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 //半角转换 ...

  5. Flex 日语全角半角转换

    日语假名,数字,标点符号全角半角转换 可以满足以下转换 转换前: ~!@#$%^&*()_+{}|:\"<>?`-=「」\\;'、。・abcdefghijklmnopqr ...

  6. php amp 字符串处理,php字符串处理之全角半角转换

    半角全角的处理是字符串处理的常见问题,本文尝试为大家提供一个思路. 一.概念 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E) 半角字符unicode编 ...

  7. PHP全角和半角字符怎么区分,php字符串处理之全角半角转换,php字符串全角半角_PHP教程...

    php字符串处理之全角半角转换,php字符串全角半角 半角全角的处理是字符串处理的常见问题,本文尝试为大家提供一个思路. 一.概念 全角字符unicode编码从65281~65374 (十六进制 0x ...

  8. python中英文半角还是全角_如何理解python3的unicode,以及全角半角转换

    匿名用户 1级 2017-11-06 回答 1. unicode是一个编码的standard,表明了字符与数字之间的映射,是可变长的. 2. 映射后的数据如何编码为字节?这个就是具体的编码规则:目前最 ...

  9. android 判断标点符号,android 标点符号的全角半角转换

    public class BCConvert {     /**      * ASCII表中可见字符从!开始,偏移位值为33(Decimal)      */     static final ch ...

  10. python中英文半角还是全角_Python实现全角半角转换的方法

    本文实例讲解了Python实现全角半角转换的方法,相信对于大家的Python学习能够起到一定的参考借鉴价值.如下所示: 一.全角半角转换概述: 全角字符unicode编码从65281~65374 (十 ...

最新文章

  1. Linq延迟求值现象
  2. ISA Server中基于L2TP实现远程拨入***
  3. Sphinx武林秘籍(上)
  4. SpringBoot(Thymeleaf)拼接跳转链接
  5. 每天一道LeetCode-----生命游戏
  6. mysql开启布隆过滤器_海量数据去重之布隆过滤器
  7. linux卸载nomachine,NoMachine 安装与配置及使用
  8. Java读写CSV格式文件(opencsv)
  9. android 字符串加密算法,Android常见加密算法实现
  10. 第一个Polymer应用 - (2)创建你自己的元素
  11. JEECG弹出表单调用列表刷新
  12. callable线程池示例_Java Callable Future示例
  13. 计算机安装微信打不开,微信电脑版打不开怎么办?解决办法如下
  14. 旁站,子域名,C段的含义
  15. python抢票软件哪个好_50个抢票加速包,还不如这个Python抢票神器
  16. 安装ubunut双系统,如何删除其中一个
  17. urllib库如何设置代理如何传递并保存cookie【python爬虫入门进阶】(02-3)
  18. 计算机机房使用多大的光纤引入,数据中心机房采用光纤网络布线案例解析
  19. html倒计时动画,js+css3倒计时动画特效
  20. [零刻]EQ12EQ12Pro安装OpenWRT软路由教程

热门文章

  1. [转载]jquery 消息插件--仿QQ消息弹出提醒
  2. 开始→运行→输入的命令集锦 1
  3. Promoting yourself and your research
  4. 计量经济学和机器学习方法的在假设上的区别
  5. 其实跑步花不了多少时间
  6. 【转】Java虚拟机(JVM)以及跨平台原理
  7. 快速编辑 Shell 命令行
  8. 大牛是怎么思考设计MySQL优化方案
  9. 1.7 Appium依赖添加
  10. ArcGIS 10.3 for Server新特性介绍