关于全角半角转换(转)
见谅未能注明出处:
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
关于全角半角转换(转)相关推荐
- java 全角_java字符全角半角转换
序 本文展示一下如何将char进行半角与全角转换. 术语 全角 SBC case Sexagesimal to Binary Converter 60进制转为2进制 半角 DBC case Decim ...
- html自动半角转全角,全角半角转换就是这么简单
在Excel表格中输入数字的时候有时会发现数字的间距特别大,这不仅不美观还占位置,那么到底是什么原因导致这样呢?其实数字间距大是因为输入法的全角半角,只要我们切换下就可以轻松解决问题了,接下来小编就来 ...
- Java 全角半角转换工具类
/*** @author: lee* @Date: 2018/11/29 09:56* @Description: 全角半角转换工具类*/ public class AsciiUtil {public ...
- java 全角数字 转 数字_JavaScript数字全角半角转换代码教程
javascript数字全角半角转换代码教程 ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 //半角转换 ...
- Flex 日语全角半角转换
日语假名,数字,标点符号全角半角转换 可以满足以下转换 转换前: ~!@#$%^&*()_+{}|:\"<>?`-=「」\\;'、。・abcdefghijklmnopqr ...
- php amp 字符串处理,php字符串处理之全角半角转换
半角全角的处理是字符串处理的常见问题,本文尝试为大家提供一个思路. 一.概念 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E) 半角字符unicode编 ...
- PHP全角和半角字符怎么区分,php字符串处理之全角半角转换,php字符串全角半角_PHP教程...
php字符串处理之全角半角转换,php字符串全角半角 半角全角的处理是字符串处理的常见问题,本文尝试为大家提供一个思路. 一.概念 全角字符unicode编码从65281~65374 (十六进制 0x ...
- python中英文半角还是全角_如何理解python3的unicode,以及全角半角转换
匿名用户 1级 2017-11-06 回答 1. unicode是一个编码的standard,表明了字符与数字之间的映射,是可变长的. 2. 映射后的数据如何编码为字节?这个就是具体的编码规则:目前最 ...
- android 判断标点符号,android 标点符号的全角半角转换
public class BCConvert { /** * ASCII表中可见字符从!开始,偏移位值为33(Decimal) */ static final ch ...
- python中英文半角还是全角_Python实现全角半角转换的方法
本文实例讲解了Python实现全角半角转换的方法,相信对于大家的Python学习能够起到一定的参考借鉴价值.如下所示: 一.全角半角转换概述: 全角字符unicode编码从65281~65374 (十 ...
最新文章
- Linq延迟求值现象
- ISA Server中基于L2TP实现远程拨入***
- Sphinx武林秘籍(上)
- SpringBoot(Thymeleaf)拼接跳转链接
- 每天一道LeetCode-----生命游戏
- mysql开启布隆过滤器_海量数据去重之布隆过滤器
- linux卸载nomachine,NoMachine 安装与配置及使用
- Java读写CSV格式文件(opencsv)
- android 字符串加密算法,Android常见加密算法实现
- 第一个Polymer应用 - (2)创建你自己的元素
- JEECG弹出表单调用列表刷新
- callable线程池示例_Java Callable Future示例
- 计算机安装微信打不开,微信电脑版打不开怎么办?解决办法如下
- 旁站,子域名,C段的含义
- python抢票软件哪个好_50个抢票加速包,还不如这个Python抢票神器
- 安装ubunut双系统,如何删除其中一个
- urllib库如何设置代理如何传递并保存cookie【python爬虫入门进阶】(02-3)
- 计算机机房使用多大的光纤引入,数据中心机房采用光纤网络布线案例解析
- html倒计时动画,js+css3倒计时动画特效
- [零刻]EQ12EQ12Pro安装OpenWRT软路由教程