`
wuce7758
  • 浏览: 182223 次
  • 性别: 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. }  
分享到:
评论

相关推荐

    将全角转换为半角的程序

    在转换过程中,程序会识别出全角字符,然后将其转化为对应的半角字符。 全角转半角的过程一般包括以下步骤: 1. 读取输入文本:程序首先读取用户提供的包含全角字符的文本。 2. 分析字符编码:对每个字符进行分析,...

    java全角半角转换程序

    ### Java全角半角转换程序知识点详解 #### 核心概念 在计算机处理文本时,全角字符和半角字符是常见的编码问题。全角字符主要用于东亚语言(如中文、日语、韩语等),其宽度通常是半角字符的两倍。在ASCII码中,...

    全半角转换

    理解全半角转换的概念并掌握其在不同编程语言中的实现方法,对于解决字符编码问题、优化文本处理流程和提高程序兼容性具有重要意义。在实际操作中,需要特别注意字符编码的统一,避免因编码不匹配引发的乱码问题。...

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

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

    全角半角转换函数.txt

    全角(Full Width)和半角(Half Width)字符是根据字符在屏幕上的显示宽度来区分的,广泛应用于东亚语言环境,如中文、日文、韩文中。全角字符通常占用两个字节宽的空间,而半角字符则只占用一个字节宽的空间。这种...

    c#全角转化成半角源程序

    全角字符(Full-Width Characters)主要用在东亚语言中,如中文、日文、韩文等,它们占用两个字节的存储空间,通常用于表示汉字、标点符号等。相比之下,半角字符(Half-Width Characters)是西方语言常用的字符形式...

    全角半角转换工具,编程后发现问题时可以对大把的程序改变,不必再一个一个手动修改,很方便!

    `sbcdbc.exe` 可能是全角半角转换工具的可执行程序,用户可以直接运行来实现转换功能;而`下载说明.htm`很可能是提供关于如何安装、使用该工具的详细说明,包括可能的操作步骤、注意事项以及常见问题解答。 使用...

    全半角互转换工具.zip

    总结而言,全半角互转换工具.zip提供了一个实用的解决方案,用以应对全角字符与半角字符转换的需要。它不仅能解决处理中英文混合文本时的问题,还可以通过提供源码支持用户进行个性化定制和扩展。对于需要进行频繁...

    PB中全角与半角互转函数

    通过上述函数,我们可以轻松地在PB应用程序中实现全角与半角字符之间的相互转换。这对于处理包含多种字符类型的数据非常有用,特别是在处理包含中文和其他东亚语言的文本时。掌握这个函数可以帮助开发者更好地管理...

    解决全角与半角问题

    全角字符在简体中文Windows系统中通常用于汉字和部分标点符号,每个字符占用两个字节,宽度相当于两个半角字符;而半角字符(通常是英文、数字和部分标点)占用一个字节,宽度为一个字符单元。 在描述中提到的“VS...

    NET全角变半角补丁

    在.NET框架下进行编程时,有时我们可能会遇到输入法在英文(半角)和中文(全角)状态之间切换的问题,这可能导致字符处理时出现不一致的情况,尤其是在处理字符串长度、格式化输出或数据校验时。"NET全角变半角补丁...

    全角半角数字转换

    转换程序的核心就在于将这些值进行映射,将全角数字转换成半角数字,或者反之。 在提供的压缩包文件"SBCtoDBC"中,我们可以推测它包含了一个用于进行全角到半角(SBC,Single Byte Character,通常指半角)和半角到...

    CS2005中winfrm解决输入法自动全角到半角转换 回车光标到下一个控件

    然而,在使用中文输入法时,回车可能会先执行全角到半角的转换,然后再移动光标,这可能不符合用户的使用习惯。 要自定义此行为,开发者可以重写控件的`ProcessCmdKey`方法,捕获回车键并按需处理。如果希望回车键...

    pb全角转半角

    在中文输入法中,全角字符常用于汉字和一些特殊符号,而半角字符则用于英文和数字等。 全角转半角的过程主要涉及字符编码的转换,这是因为全角字符在Unicode或GB2312等编码体系中使用,而半角字符在ASCII编码中使用...

    对全角半角字符串的处理

    特别是在东亚语言环境中(如中文、日文、韩文等),这种转换对于文本处理至关重要。 #### 全角与半角的概念 1. **全角字符**:全角字符主要指在东亚语言环境中使用的字符类型,它们通常占据两个字节的位置(即一个...

    C#实现全角字符转换成半角字符

    根据给定文件的信息,我们可以总结出以下详细的IT知识点: ### C# 实现全角字符转换成半角...总之,通过上述方法可以有效地实现全角字符到半角字符的转换,这对于处理包含中文或其他亚洲语言的应用程序来说非常重要。

    .net下数字全角转半角

    `转全角半角(C#,VB_NET) - RubyPdf 的中文博客 - 博客园.htm`、`C#中直接调用VB_NET的函数,兼论半角与全角、简繁体中文互相转化 - 空军 - 博客园.htm`等文章则深入探讨了全角半角转换以及跨语言调用的具体实现。...

    DELPIH 全角转成半角

    在简体中文环境中,全角字符通常用于汉字,每个全角字符占用两个字节,并且在屏幕上占一个全宽位置。而半角字符,如英文和数字,每个占用一个字节,且在屏幕上的宽度仅为全角字符的一半。 在DELPHI编程中,处理这种...

    c#半角全角转换源码.rar

    全角字符(全宽度字符)主要用于中文环境,每个字符占据两个字节,并在屏幕上占据一个全宽的位置。而半角字符(半宽度字符)主要用于英文和数字,每个字符占一个字节,显示时宽度为全角字符的一半。在处理混合语言的...

    C# 全角和半角转换以及判断的简单代码

    在中文环境下,全角字符常用于输入汉字、标点符号以及一些特殊字符,而半角字符通常用于英文、数字和基本的标点。 以下是对标题和描述中提到的知识点的详细解释: 1. **判断全角和半角** - **判断半角**:在C#中...

Global site tag (gtag.js) - Google Analytics