`
wuce7758
  • 浏览: 177519 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • YTT1121: 有网络拓扑发现的源代码么?能不能发我一份学习一下,现在我正要做 ...
    java拓扑图
  • YTT1121: 大神,有网络拓扑发现的源代码么?或者您会编写么?我需要做科研改 ...
    java拓扑图
  • YTT1121: 大神,有网络拓扑发现的源代码么?或者您会编写么?我需要做科研改 ...
    java拓扑图
  • poettang: 求代码分享学习,谢谢!膜拜大神!258026921@qq.co ...
    java拓扑图
  • oiqio: 87836238@qq.com,感谢楼主,来一份~
    java拓扑图

汉字全半角转化程序

 
阅读更多

转载一个牛人的。方便以后查看使用:

也许. 这个代码对很多人来说, 不知道有什么用途. 或者说, 他们用不上. 本来也是随意贴贴的.

我们做的系统, 很多是电脑基础很差的顾客, 跟他说不清楚全角/半角的差别, 对于一些要求数字输入, 或者半角限制的输入, 这时候很多客户会说, 我明明输入是数字, 为什么系统说这不是数字呢. 所以, 我们在输入合法检查之前, 把用户的输入进行善意的撰改. 以达到合法输入的目的. 这在用户体验上有很好的效果.  希望大家都能做更好的用户体验:)

 

 

Java代码 复制代码
  1. /**  
  2.  * <PRE>  
  3.  * 提供对字符串的全角-&gt;半角,半角-&gt;全角转换    
  4.  * </PRE>  
  5.  */  
  6. public class BCConvert {   
  7.   
  8.     /**  
  9.      * ASCII表中可见字符从!开始,偏移位值为33(Decimal)  
  10.      */  
  11.     static final char DBC_CHAR_START = 33;   // 半角!   
  12.   
  13.     /**  
  14.      * ASCII表中可见字符到~结束,偏移位值为126(Decimal)  
  15.      */  
  16.     static final char DBC_CHAR_END   = 126;  // 半角~   
  17.   
  18.     /**  
  19.      * 全角对应于ASCII表的可见字符从!开始,偏移值为65281  
  20.      */  
  21.     static final char SBC_CHAR_START = 65281// 全角!   
  22.   
  23.     /**  
  24.      * 全角对应于ASCII表的可见字符到~结束,偏移值为65374  
  25.      */  
  26.     static final char SBC_CHAR_END   = 65374// 全角~   
  27.   
  28.     /**  
  29.      * ASCII表中除空格外的可见字符与对应的全角字符的相对偏移  
  30.      */  
  31.     static final int  CONVERT_STEP   = 65248// 全角半角转换间隔   
  32.   
  33.     /**  
  34.      * 全角空格的值,它没有遵从与ASCII的相对偏移,必须单独处理  
  35.      */  
  36.     static final char SBC_SPACE      = 12288// 全角空格 12288   
  37.   
  38.     /**  
  39.      * 半角空格的值,在ASCII中为32(Decimal)  
  40.      */  
  41.     static final char DBC_SPACE      = ' ';  // 半角空格   
  42.   
  43.     /**  
  44.      * <PRE>  
  45.      * 半角字符-&gt;全角字符转换  
  46.      * 只处理空格,!到&tilde;之间的字符,忽略其他  
  47.      * </PRE>  
  48.      */  
  49.     public static String DBC2SBC(String src) {   
  50.         if (src == null) {   
  51.             return src;   
  52.         }   
  53.         StringBuilder buf = new StringBuilder(src.length());   
  54.         char[] ca = src.toCharArray();   
  55.         for (int i = 0; i < ca.length; i++) {   
  56.             if (ca[i] == DBC_SPACE) { // 如果是半角空格,直接用全角空格替代   
  57.                 buf.append(SBC_SPACE);   
  58.             } else if ((ca[i] >= DBC_CHAR_START) && (ca[i] <= DBC_CHAR_END)) { // 字符是!到~之间的可见字符   
  59.                 buf.append((char) (ca[i] + CONVERT_STEP));   
  60.             } else { // 不对空格以及ascii表中其他可见字符之外的字符做任何处理   
  61.                 buf.append(ca[i]);   
  62.             }   
  63.         }   
  64.         return buf.toString();   
  65.     }   
  66.   
  67.     /**  
  68.      * <PRE>  
  69.      * 全角字符-&gt;半角字符转换  
  70.      * 只处理全角的空格,全角!到全角~之间的字符,忽略其他  
  71.      * </PRE>  
  72.      */  
  73.     public static String SBC2DBC(String src) {   
  74.         if (src == null) {   
  75.             return src;   
  76.         }   
  77.         StringBuilder buf = new StringBuilder(src.length());   
  78.         char[] ca = src.toCharArray();   
  79.         for (int i = 0; i < src.length(); i++) {   
  80.             if (ca[i] >= SBC_CHAR_START && ca[i] <= SBC_CHAR_END) { // 如果位于全角!到全角~区间内   
  81.                 buf.append((char) (ca[i] - CONVERT_STEP));   
  82.             } else if (ca[i] == SBC_SPACE) { // 如果是全角空格   
  83.                 buf.append(DBC_SPACE);   
  84.             } else { // 不处理全角空格,全角!到全角~区间外的字符   
  85.                 buf.append(ca[i]);   
  86.             }   
  87.         }   
  88.         return buf.toString();   
  89.     }   
  90.   
  91. }  
分享到:
评论

相关推荐

    全角半角数字转换工具v1.0713中文绿色免费版

    全角半角转换工具是一款可以批量将全角转换成半角,或批量将半角转换为全角的软件。全角半角转换工具支持文件导入、导出。 使用方法 1.将带有全角数字的新闻(Ctrl C)复制,在(Ctrl V)粘贴到上面文本框内。 2....

    解决.NET2.0全角半角转换麻烦的补丁

    利用C#开发工具开发程序,导致全角半角转换麻烦。

    Python 含中文分词的多项式贝叶斯的增量学习的文本分类.rar

     程序实现功能:全角转半角、解析文件内容、从原始文件中解析出文本内容和标签数据、以列表形式返回文本中的所有内容和对应标签、交叉检验、将训练集文本数据转换为稀疏矩阵、全角转半角/中文分词/将文本标签转换为...

    易语言编程系统PDF完整版(4/4)

    支持中文格式日期和时间处理、汉字发音处理、全半角字符处理、人民币金额处理、农历日期转换等。 与国际接轨 和其它编程语言互溶互通,学习掌握易语言对掌握其它编程语言具有桥梁作用。 ★编程理念互通。支持完全...

    Java进制/时间/日期/字符串/流算法大全

    中文乱码转换 Big5 字与Unicode 的互换 取得服务器当前的各种具体时间 用半角的特殊符号代替全角的特殊符号 数组和数组之间的转换代码 从资源文件里读取值的类 将数组转成字符串在调试或记录日志时用到 ........

    C++Builder精彩编程实例集锦的源代码(1,2,3部分).rar

    实例073 如何将全角字符串转换成半角字符串 实例074 如何按照指定的有效位数转换数字 实例075 如何获取汉字的拼音索引 实例076 如何设置输入方法 实例077 如何控制数据输入格式 实例078 如何控制编辑框中的...

    C++Builder精彩编程实例集锦的源代码前3部分.rar

    实例073 如何将全角字符串转换成半角字符串 实例074 如何按照指定的有效位数转换数字 实例075 如何获取汉字的拼音索引 实例076 如何设置输入方法 实例077 如何控制数据输入格式 实例078 如何控制编辑框中的...

    C++Builder精彩编程实例集锦的源代码后3部分.rar

    实例073 如何将全角字符串转换成半角字符串 实例074 如何按照指定的有效位数转换数字 实例075 如何获取汉字的拼音索引 实例076 如何设置输入方法 实例077 如何控制数据输入格式 实例078 如何控制编辑框中的...

    第一部分 界面设计

    实例073 如何将全角字符串转换成半角字符串 实例074 如何按照指定的有效位数转换数字 实例075 如何获取汉字的拼音索引 实例076 如何设置输入方法 实例077 如何控制数据输入格式 实例078 如何控制编辑框中的...

    中文编辑排版专家DreamEdit

    3、可以进行英文大小写、数字全半角转换。 四、贴心的剪贴文本功能: 设置常用的剪贴文本,编辑文件时省去很多重复劳动。本功能参考EditPlus2 制 作,并兼容EditPlus2 的剪贴文本文件,将这些文件拷入DreamEdit ...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    一、Qt Creator 的安装和hello world 程序的编写(原创) 1.首先到Qt 的官方网站上下载Qt Creator,这里我们下载windows 版的。 下载地址:http://qt.nokia.com/downloads 如下图我们下载:Download Qt SDK for ...

    SKK-for-iOS:适用于iOS的SKK(简单假名到汉字转换程序)

    适用于iOS的SKK 目前正在开发中,它尚未在App Store等上分发。...输入模式切换(平假名,片假名,半角假名,全角字母数字,ASCII) 输入过程中的字典注册 执照 版权所有(C)2014 codefirst根据许可

    程序天下:JavaScript实例自学手册

    3.11 判断字符串中有多少汉字 3.12 去除字符串的前后空格 3.13 刷新时清空所有文本框 3.14 随意改变大小的文本框 3.15 文本框的自动全选 3.16 文本框滚动导航 3.17 按钮获取焦点 3.18 文本框获取焦点弹出下拉框 3.19...

    《程序天下:JavaScript实例自学手册》光盘源码

    3.11 判断字符串中有多少汉字 3.12 去除字符串的前后空格 3.13 刷新时清空所有文本框 3.14 随意改变大小的文本框 3.15 文本框的自动全选 3.16 文本框滚动导航 3.17 按钮获取焦点 3.18 文本框获取焦点弹出下拉框 3.19...

    java 算法

    JAVA时间格式化处理 ,将毫秒转化为日期, 文本的倒序输出 ,判断一个数字是奇数还是偶数 ,用Hibernate实现分页, 35选7彩票程序 ,获取GMT8时间, 中文乱码转换 ,小标签 ,Big5字与Unicode的互换, 取得服务器...

    textpro 6.5及使用教程

    除了一对一的汉字转换外,内部转换时还采取了以词组选择多义字的方法以尽量减少转换错误;随后用户还可在自动转码后采用人工干预的“复选”操作,对最常见的转换错误进行审核。(用户还可自定义某学科的专用字替换表...

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    PHP全角半角转换函数 PHP农历函数 PHP分页函数 PHP判断字符串是否UTF8格式 php判断爬虫函数 PHP判断远程文件是否存在 PHP图片处理类:缩略,裁剪,圆角,倾斜 PHP多功能图片处理类 PHP多重判断删除文件函数 ...

    官方最新发布的Textpro6.5及其教程

    除了一对一的汉字转换外,内部转换时还采取了以词组选择多义字的方法以尽量减少转换错误;随后用户还可在自动转码后采用人工干预的“复选”操作,对最常见的转换错误进行审核。(用户还可自定义某学科的专用字替换表...

    kanatools-java:在Java中轻松处理日语假名文本的实用程序

    仅需几行代码,您便可以快速转换假名和罗马字。 在Java 1.5及更高版本中可用。英语kanatools-java是一小部分实用程序,在处理日文文本时使您的生活更轻松。 只需几行代码即可快速处理包含假名字符的文本。 适用于...

Global site tag (gtag.js) - Google Analytics