java对于半角和全角的转换
2016-05-22 00:00
441 查看
本文章转载自:http://www.blogjava.net/action/archive/2006/06/01/49743.html
非常感谢上面链接的文章,在我项目中帮助了我。
方法一:
方法二:
非常感谢上面链接的文章,在我项目中帮助了我。
方法一:
// 半角转全角 public static final String BQchange(String QJstr) { String outStr = ""; String Tstr = ""; byte[] b = null; for (int i = 0; i< QJstr.length(); i++) { try { Tstr = QJstr.substring(i, i + 1); b = Tstr.getBytes("unicode"); } catch (java.io.UnsupportedEncodingException e) { e.printStackTrace(); } if (b[3] != -1) { b[2] = (byte) (b[2] - 32); b[3] = -1; try { outStr = outStr + new String(b, "unicode"); } catch (java.io.UnsupportedEncodingException e) { e.printStackTrace(); } } else outStr = outStr + Tstr; } return outStr; } // 全角转半角 public static final String QBchange(String QJstr) { String outStr = ""; String Tstr = ""; byte[] b = null; for (int i = 0; i< QJstr.length(); i++) { try { Tstr = QJstr.substring(i, i + 1); b = Tstr.getBytes("unicode"); } catch (java.io.UnsupportedEncodingException e) { e.printStackTrace(); } if (b[3] == -1) { b[2] = (byte) (b[2] + 32); b[3] = 0; try { outStr = outStr + new String(b, "unicode"); } catch (java.io.UnsupportedEncodingException e) { e.printStackTrace(); } } else outStr = outStr + Tstr; } return outStr; } }
方法二:
// 转全角的函数(SBC case) // 任意字符串 // 全角字符串 // 全角空格为12288,半角空格为32 // 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 public static String ToSBC(String input) { // 半角转全角: char[] c = input.toCharArray(); for (int i = 0; i< c.length; i++) { if (c[i] == 32) { c[i] = (char) 12288; continue; } if (c[i]< 127) c[i] = (char) (c[i] + 65248); } return new String(c); } // 转半角的函数(DBC case) // 任意字符串 // 半角字符串 // 全角空格为12288,半角空格为32 // 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 public static String ToDBC(String input) { //全角转半角 char[] c = input.toCharArray(); for (int i = 0; i< c.length; i++) { if (c[i] == 12288) { c[i] = (char) 32; continue; } if (c[i]> 65280&& c[i]< 65375) c[i] = (char) (c[i] - 65248); } return new String(c); }
相关文章推荐
- hibernate正向工程创建数据库createDB.java
- java读取InputStream输入流后输出String字符串
- javaweb简单实现国际化信息输出(参考)
- java事务
- Java基本类型与包装类的区别
- 对Java多态的理解
- Java Thread多线程
- spring容器初始化时报java.lang.IllegalArgumentException
- 解决eclipse每次Run as Android 程序,会重新启动一个AVD模拟器的问题
- 抽象练习、封装及javadoc使用等相关演示
- IDEA导入Maven项目(Spring+Mybatis)后登录报错:找不到对应的Dao方法
- FTP方式的文件上传和下载的Java代码
- Java web项目结构目录
- JAVA虚拟机学习1---OpenJDK的编译
- java中模拟浏览器访问网页(三)
- 如何编写和应用Java的自定义异常类
- Java中Properties类的操作
- JAVA中堆和栈的区别
- Spring的事务管理多线程的困惑
- java 英文词频统计