全角转半角、半角转全角代码

/*** <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常用工具类 - 全角转半角、半角转全角相关推荐

  1. Java常用工具类StringUtils的常用方法

    Java常用工具类StringUtils的常用方法 1.该工具类是用于操作Java.lang.String类的. 2.StringUtils类在操作字符串是安全的,不会报空指针异常,也正因此,在操作字 ...

  2. java常用工具类和Hutool常用的工具类整理

    java常用工具类和Hutool常用的工具类整理 1.java常用工具类 1.1 Scanner类 /*** Scanner 类*/@Testpublic void testScanner() {Sc ...

  3. Java常用工具类JsonUtils

    Java常用工具类JsonUtils 一.项目添加pom文件 <dependency><groupId>com.google.code.gson</groupId> ...

  4. JAVA常用工具类(实用高效)

    JAVA常用工具类(根据GITHUB代码统计) 从Google你能搜索到大量的关于Struts,Spring,Hibernate,iBatis等比较大的框架的资料,但是很少有人去关注一些小的工具包,但 ...

  5. Hutool Java常用工具类汇总

    简介 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以"甜甜的". Hu ...

  6. Java 常用工具类整理

    目录 第一部分:常用的16个工具类 第二部分:java开发常用工具类(正则校验) 第一部分:常用的16个工具类 一.org.apache.commons.io.IOUtils 1.closeQuiet ...

  7. Java常用工具类之异常、包装类、字符串处理类、集合框架实现类、输入输出流、多线程

    集合.多线程和I/O流等 介绍6种常用工具类: 1.如何应用异常处理程序中的问题?2.如何通过包装器类实现基本数据类型的对象化处理?3.字符串处理类String.StringBuilder是如何进行字 ...

  8. Java 常用工具类 Collections 源码分析

    文章出处 文章出自:安卓进阶学习指南 作者:shixinzhang 完稿日期:2017.10.25 Collections 和 Arrays 是 JDK 为我们提供的常用工具类,方便我们操作集合和数组 ...

  9. Java常用工具类整合(史上最全)

    JSON转换工具 package com.taotao.utils;import java.util.List;import com.fasterxml.jackson.core.JsonProces ...

最新文章

  1. 给你推荐几个 NB 的公众号
  2. 打包python程序
  3. ai创造了哪些职业_关于创造职业的思考
  4. win10下安装node
  5. 【笔记】HybridApp中使用Promise化的JS-Bridge
  6. 随想录(英语学习的几个误区)
  7. 各位网友为什么当初投资P2P的人最后基本都是血本无归?
  8. 关于大数据平台,这有一套完整的方法论,你确定不收藏?
  9. python编写数据库连接工具_详解使用Python写一个向数据库填充数据的小工具(推荐)...
  10. linux压缩比,Linux下各压缩方式测试(压缩率和使用时间)
  11. csdn插件下载和应用
  12. java创建按钮_java中制作一个按钮需要那些步骤
  13. 甲方在IT信息化中的项目管理
  14. IntelliJ IDEA 2018.3 安装+永久激活[Windows]
  15. 1.函数的结构,调用,传参,形参,实参,args,kwargs,名称空间,高阶函数
  16. 解决缺少 SHA256.h文件
  17. 安全研究 # 二进制代码相似性检测综述
  18. HTML5相册,网页,模板,微信,制作,
  19. 计算机错误651是什么故障,宽带连接错误651是什么意思?
  20. MAC M1芯片安装python3.6环境

热门文章

  1. ajax文件上传data,ajax文件上传-FormData()
  2. ■■■照片后期处理经典实例教程1500篇■■■
  3. 国家质量基础设施NQI系统开发,NQI一站式服务平台建设
  4. 深入解析Linux系统中的“一切皆文件“
  5. Python的itchat库,你的小助手
  6. 什么是TCN?什么时候会发送TCN消息?
  7. Columbia Biosciences 山羊抗鸡 IgY说明书
  8. 功能:crypto-js加密解密
  9. 使用PIXIWell_RF 射频模块 虚拟GPS
  10. python剪辑视频_你知道吗?Python也可以剪辑视频!