欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java中字符进行全角半角转换示例代码

程序员文章站 2024-02-22 12:33:04
前言 本文将给大家展示一下如何将char进行半角与全角转换,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 术语 全角 sbc...

前言

本文将给大家展示一下如何将char进行半角与全角转换,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

术语

全角

  • sbc case
  • sexagesimal to binary converter
  • 60进制转为2进制

半角

  • dbc case
  • decimal to binary converter
  • 10进制转为2进制

工具类

public class asciiutil {

 public static final char sbc_space = 12288; // 全角空格 12288

 public static final char dbc_space = 32; //半角空格 32

 // ascii character 33-126 <-> unicode 65281-65374
 public static final char ascii_start = 33;

 public static final char ascii_end = 126;

 public static final char unicode_start = 65281;

 public static final char unicode_end = 65374;

 public static final char dbc_sbc_step = 65248; // 全角半角转换间隔

 public static char sbc2dbc(char src){
  if (src == sbc_space) {
   return dbc_space;
  }

  if (src >= unicode_start && src <= unicode_end) {
   return (char) (src - dbc_sbc_step);
  }

  return src;
 }

 /**
  * convert from sbc case to dbc case
  *
  * @param src
  * @return dbc case
  */
 public static string sbc2dbccase(string src) {
  if (src == null) {
   return null;
  }
  char[] c = src.tochararray();
  for (int i = 0; i < c.length; i++) {
   c[i] = sbc2dbc(c[i]);
  }
  return new string(c);
 }

 public static char dbc2sbc(char src){
  if (src == dbc_space) {
   return sbc_space;
  }
  if (src <= ascii_end) {
   return (char) (src + dbc_sbc_step);
  }
  return src;
 }

 /**
  * convert from dbc case to sbc case.
  *
  * @param src
  * @return sbc case string
  */
 public static string dbc2sbccase(string src) {
  if (src == null) {
   return null;
  }

  char[] c = src.tochararray();
  for (int i = 0; i < c.length; i++) {
   c[i] = dbc2sbc(c[i]);
  }

  return new string(c);
 }
}

验证

@test
 public void testdbc(){
  system.out.println(asciiutil.sbc2dbccase("hello world"));
  system.out.println(asciiutil.dbc2sbccase("hello world"));
 }

输出

hello world
hello world

doc

java工具类——全角半角字符相互转换

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。