1. /// <summary>
  2. /// 判断字符是否英文半角字符或标点
  3. /// </summary>
  4. /// <remarks>
  5. /// 32    空格
  6. /// 33-47    标点
  7. /// 48-57    0~9
  8. /// 58-64    标点
  9. /// 65-90    A~Z
  10. /// 91-96    标点
  11. /// 97-122    a~z
  12. /// 123-126  标点
  13. /// </remarks>
  14. public static bool IsBjChar(char c)
  15. {
  16. int i = (int)c;
  17. return i >= 32 && i <= 126;
  18. }
  19. /// <summary>
  20. /// 判断字符是否全角字符或标点
  21. /// </summary>
  22. /// <remarks>
  23. /// <para>全角字符 - 65248 = 半角字符</para>
  24. /// <para>全角空格例外</para>
  25. /// </remarks>
  26. public static bool IsQjChar(char c)
  27. {
  28. if (c == '\u3000') return true;
  29. int i = (int)c - 65248;
  30. if (i < 32) return false;
  31. return IsBjChar((char)i);
  32. }
  33. /// <summary>
  34. /// 将字符串中的全角字符转换为半角
  35. /// </summary>
  36. public static string ToBj(string s)
  37. {
  38. if (s == null || s.Trim() == string.Empty) return s;
  39. StringBuilder sb = new StringBuilder(s.Length);
  40. for (int i = 0; i < s.Length; i++)
  41. {
  42. if (s[i] == '\u3000')
  43. sb.Append('\u0020');
  44. else if (IsQjChar(s[i]))
  45. sb.Append((char)((int)s[i] - 65248));
  46. else
  47. sb.Append(s[i]);
  48. }
  49. return sb.ToString();
  50. }

全角空格为12288,半角空格为32

其他字符半角(33-126)与考试.大提示全角(65281-65374)的对应关系是:均相差65248

  1. /***************************************
  2. *
  3. * 全角转换成半角
  4. * @param input 原始字符串
  5. * @return 转换后的字符串
  6. *
  7. ***************************************/
  8. public static String QtoB(String input) {
  9. char c[] = input.toCharArray();
  10. for (int i = 0; i < c.length; i++) {
  11. if (c[i] == '\u3000') {
  12. c[i] = ' ';
  13. }?
  14. else if (c[i] > '\uFF00' && c[i] < '\uFF5F') {
  15. c[i] = (char) (c[i] - 65248);
  16. }
  17. }
  18. return new String(c);
  19. }
  1. //半角转全角
  2. public static String BtoQ(String input){
  3. char c[] = input.toCharArray();
  4. for ( int i=0; i<c.length;i++ ) {
  5. if (c[i] ==' ') {
  6. c[i] = '\u3000';
  7. }
  8. else if (c[i]<'\177') {
  9. c[i]= (char) (c[i]+65248);
  10. }
  11. }
  12. return new String(c);
  13. }

java 全角字符半角字符转换的更多相关文章

  1. Java全角、半角字符的关系以及转换

    如果搞明白了Java中全角字符和半角字符之间的关系,那他们之间的转换就不是个麻烦事儿.你只需要对这个关系有那么一个印象就足够了. 全角字符与半角字符的关系 通过下面的代码能看到Java中所有字符以及对 ...

  2. java 全角、半角字符串转换

    转自:http://www.cnblogs.com/modou/articles/2679815.html     加入了空字符串的验证 半角转全角的方法: /** * @Title: ToSBC * ...

  3. java全角和半角转换

    package test; public class HalfAndFullConverseUtil { /** * ASCII表中可见字符从!开始,偏移位值为33(Decimal) */ priva ...

  4. c# 字符串中全角和半角字符互转

    public class ConvertDBCAndSBC { /// <summary>半角转成全角 /// 半角空格32,全角空格12288 /// 其他字符半角33~126,其他字符 ...

  5. BCCoventUtils全角与半角互相转换

    public class BCConvert { /** * ASCII表中可见字符从!开始,偏移位值为33(Decimal) */ static final char DBC_CHAR_START ...

  6. sql server 全角与半角字符转换

      /****** SQL转换全角/半角函数 开始******/CREATE FUNCTION ConvertWordAngle ( @str NVARCHAR(4000), --要转换的字符串 @f ...

  7. sql server 2005全角与半角字符转换

    CREATE FUNCTION D_ByteExchangeS_Byte(@str NVARCHAR(4000), --要转换的字符串@flag bit              --转换标志,0转换 ...

  8. qlserver排序规则在全角与半角处理中的应用

    --1.查询区分全角与半角字符--测试数据DECLARE @t TABLE(col varchar(10))INSERT @t SELECT 'aa'UNION ALL SELECT 'Aa'UNIO ...

  9. 刨根究底字符编码之五——简体汉字编码方案(GB2312、GBK、GB18030、GB13000)以及全角、半角、CJK

    简体汉字编码方案(GB2312.GBK.GB18030.GB13000)以及全角.半角.CJK   一.概述 1. 英文字母再加一些其他标点字符之类的也不会超过256个,用一个字节来表示一个字符就足够 ...

  10. c# 中文字符(全角、半角)通用处理

    声明:本文仅提供一种编程思路,所提供代码仅供参考,如需使用,请自行完善. 我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角.半角的问题,这会在查询时给我们带来很多麻烦.本 ...

随机推荐

  1. (转)php 函数名称前的@有什么作用

    如:$register_globals = @ini_get('register_globals'); 隐藏错误提示~如果ini_get('register_globals'); 语句错误的话`错误会 ...

  2. 强引用,弱引用,4种Java引用浅解(涉及jvm垃圾回收)

    http://www.jb51.net/article/49085.htm http://www.jb51.net/article/49085.htm

  3. 【转】iOS Developer:真机测试

    摘要 申请真机调试证书全过程,最新更新:2014-05-19 2014-10-16记:由于现在 itunes 更新变化较大,本文可能不能很好地解决您的问题,而我现在不负责公司的发布调试问题,暂未及时更 ...

  4. NPM环境搭建

    1. NPM全局路径:配置npm包的安装位置,在你的用户文件夹下,新建.npmrc文件:cache=D:\NodeJs\nvm\npm-cache 表示缓存文件夹 prefix=D:\NodeJs\n ...

  5. 疯狂学习java web2(css)

    CSS应该是样式描述的意思,定义如下: 什么是 CSS? CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 ...

  6. InstallShield Basic MSI工程常见问题解答[转]

    1.  问题描述:采用何种安装模式?实现方法:如果对用户界面等自定义要求不高的话,建议用Basic Msi Project,否则用InstallScript MSI Project. 2.  问题描述 ...

  7. MLlib-聚类

    聚类 例子 流聚类 例子 聚类 MLlib支持k-means聚类,一种最常用的聚类方法,将数据点聚成指定数据的簇.MLlib实现了一种k-means++的并行变种,叫做kmeansII.MLlib的实 ...

  8. sql 批处理、获取自增长、事务、大文本处理

    批处理 需要批量执行sql语句! 需求:批量保存信息! 设计: AdminDao Public void save(List<Admin list){ // 目前用这种方式 // 循环 // 保 ...

  9. ZooKeeper 应用场景

    ZooKeeper典型应用场景一览   数据发布与订阅(配置中心) 发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新 ...

  10. Javascript返回顶部

    控制按钮下拉到达一定距离时显示,返回顶层时消失,用JS中的延时定时器来模拟滚动条效果 <script type="text/javascript"> window.on ...