java常用工具类 - 全角转半角、半角转全角
全角转半角、半角转全角代码
/*** <PRE>* 提供对字符串的全角->半角,半角->全角转换* codingwhy.com* </PRE>*/
public class BCConvert {/*** ASCII表中可见字符从!开始,偏移位值为33(Decimal)*/static final char DBC_CHAR_START = 33; // 半角!/*** ASCII表中可见字符到~结束,偏移位值为126(Decimal)*/static final char DBC_CHAR_END = 126; // 半角~/*** 全角对应于ASCII表的可见字符从!开始,偏移值为65281*/static final char SBC_CHAR_START = 65281; // 全角!/*** 全角对应于ASCII表的可见字符到~结束,偏移值为65374*/static final char SBC_CHAR_END = 65374; // 全角~/*** ASCII表中除空格外的可见字符与对应的全角字符的相对偏移*/static final int CONVERT_STEP = 65248; // 全角半角转换间隔/*** 全角空格的值,它没有遵从与ASCII的相对偏移,必须单独处理*/static final char SBC_SPACE = 12288; // 全角空格 12288/*** 半角空格的值,在ASCII中为32(Decimal)*/static final char DBC_SPACE = ' '; // 半角空格/*** <PRE>* 半角字符->全角字符转换 * 只处理空格,!到˜之间的字符,忽略其他* </PRE>*/private static String bj2qj(String src) {if (src == null) {return src;}StringBuilder buf = new StringBuilder(src.length());char[] ca = src.toCharArray();for (int i = 0; i < ca.length; i++) {if (ca[i] == DBC_SPACE) { // 如果是半角空格,直接用全角空格替代buf.append(SBC_SPACE);} else if ((ca[i] >= DBC_CHAR_START) && (ca[i] <= DBC_CHAR_END)) { // 字符是!到~之间的可见字符buf.append((char) (ca[i] + CONVERT_STEP));} else { // 不对空格以及ascii表中其他可见字符之外的字符做任何处理buf.append(ca[i]);}}return buf.toString();}/*** <PRE>* 全角字符->半角字符转换 * 只处理全角的空格,全角!到全角~之间的字符,忽略其他* </PRE>*/public static String qj2bj(String src) {if (src == null) {return src;}StringBuilder buf = new StringBuilder(src.length());char[] ca = src.toCharArray();for (int i = 0; i < src.length(); i++) {if (ca[i] >= SBC_CHAR_START && ca[i] <= SBC_CHAR_END) { // 如果位于全角!到全角~区间内buf.append((char) (ca[i] - CONVERT_STEP));} else if (ca[i] == SBC_SPACE) { // 如果是全角空格buf.append(DBC_SPACE);} else { // 不处理全角空格,全角!到全角~区间外的字符buf.append(ca[i]);}}return buf.toString();}public static void main(String[] args) {String s = "nihao CODINGWHY| NIhao ,。324 123 ";System.out.println(BCConvert.qj2bj(s));}
}
执行结果
nihao CODINGWHY| NIhao ,。324 123
java常用工具类 - 全角转半角、半角转全角相关推荐
- Java常用工具类StringUtils的常用方法
Java常用工具类StringUtils的常用方法 1.该工具类是用于操作Java.lang.String类的. 2.StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字 ...
- java常用工具类和Hutool常用的工具类整理
java常用工具类和Hutool常用的工具类整理 1.java常用工具类 1.1 Scanner类 /*** Scanner 类*/@Testpublic void testScanner() {Sc ...
- Java常用工具类JsonUtils
Java常用工具类JsonUtils 一.项目添加pom文件 <dependency><groupId>com.google.code.gson</groupId> ...
- JAVA常用工具类(实用高效)
JAVA常用工具类(根据GITHUB代码统计) 从Google你能搜索到大量的关于Struts,Spring,Hibernate,iBatis等比较大的框架的资料,但是很少有人去关注一些小的工具包,但 ...
- Hutool Java常用工具类汇总
简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...
- Java 常用工具类整理
目录 第一部分:常用的16个工具类 第二部分:java开发常用工具类(正则校验) 第一部分:常用的16个工具类 一.org.apache.commons.io.IOUtils 1.closeQuiet ...
- Java常用工具类之异常、包装类、字符串处理类、集合框架实现类、输入输出流、多线程
集合.多线程和I/O流等 介绍6种常用工具类: 1.如何应用异常处理程序中的问题?2.如何通过包装器类实现基本数据类型的对象化处理?3.字符串处理类String.StringBuilder是如何进行字 ...
- Java 常用工具类 Collections 源码分析
文章出处 文章出自:安卓进阶学习指南 作者:shixinzhang 完稿日期:2017.10.25 Collections 和 Arrays 是 JDK 为我们提供的常用工具类,方便我们操作集合和数组 ...
- Java常用工具类整合(史上最全)
JSON转换工具 package com.taotao.utils;import java.util.List;import com.fasterxml.jackson.core.JsonProces ...
最新文章
- 给你推荐几个 NB 的公众号
- 打包python程序
- ai创造了哪些职业_关于创造职业的思考
- win10下安装node
- 【笔记】HybridApp中使用Promise化的JS-Bridge
- 随想录(英语学习的几个误区)
- 各位网友为什么当初投资P2P的人最后基本都是血本无归?
- 关于大数据平台,这有一套完整的方法论,你确定不收藏?
- python编写数据库连接工具_详解使用Python写一个向数据库填充数据的小工具(推荐)...
- linux压缩比,Linux下各压缩方式测试(压缩率和使用时间)
- csdn插件下载和应用
- java创建按钮_java中制作一个按钮需要那些步骤
- 甲方在IT信息化中的项目管理
- IntelliJ IDEA 2018.3 安装+永久激活[Windows]
- 1.函数的结构,调用,传参,形参,实参,args,kwargs,名称空间,高阶函数
- 解决缺少 SHA256.h文件
- 安全研究 # 二进制代码相似性检测综述
- HTML5相册,网页,模板,微信,制作,
- 计算机错误651是什么故障,宽带连接错误651是什么意思?
- MAC M1芯片安装python3.6环境
热门文章
- ajax文件上传data,ajax文件上传-FormData()
- ■■■照片后期处理经典实例教程1500篇■■■
- 国家质量基础设施NQI系统开发,NQI一站式服务平台建设
- 深入解析Linux系统中的“一切皆文件“
- Python的itchat库,你的小助手
- 什么是TCN?什么时候会发送TCN消息?
- Columbia Biosciences 山羊抗鸡 IgY说明书
- 功能:crypto-js加密解密
- 使用PIXIWell_RF 射频模块 虚拟GPS
- python剪辑视频_你知道吗?Python也可以剪辑视频!