阅读489 返回首页    go 技术社区[云栖]


java全角字符转换为半角 半角转全角

/// <summary>
    /// 判断字符是否英文半角字符或标点
    /// </summary>
    /// <remarks>
    /// 32    空格
    /// 33-47    标点
    /// 48-57    0~9
    /// 58-64    标点
    /// 65-90    A~Z
    /// 91-96    标点
    /// 97-122    a~z
    /// 123-126  标点
    /// </remarks>
    public static bool IsBjChar(char c)
    {
      int i = (int)c;
      return i >= 32 && i <= 126;
    }

    /// <summary>
    /// 判断字符是否全角字符或标点
    /// </summary>
    /// <remarks>
    /// <para>全角字符 - 65248 = 半角字符</para>
    /// <para>全角空格例外</para>
    /// </remarks>
    public static bool IsQjChar(char c)
    {
      if (c == '\u3000') return true;

      int i = (int)c - 65248;
      if (i < 32) return false;
      return IsBjChar((char)i);
    }

    /// <summary>
    /// 将字符串中的全角字符转换为半角
    /// </summary>
    public static string ToBj(string s)
    {
      if (s == null || s.Trim() == string.Empty) return s;

      StringBuilder sb = new StringBuilder(s.Length);
      for (int i = 0; i < s.Length; i++)
      {
        if (s[i] == '\u3000')
          sb.Append('\u0020');
        else if (IsQjChar(s[i]))
          sb.Append((char)((int)s[i] - 65248));
        else
          sb.Append(s[i]);
      }

      return sb.ToString();
    }


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

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


/***************************************
*
* 全角转换成半角
* @param input 原始字符串
* @return 转换后的字符串
*
***************************************/
public static String QtoB(String input) {
char c[] = input.toCharArray();
for (int i = 0; i < c.length; i++) {
if (c[i] == '\u3000') {
c[i] = ' ';
}?
else if (c[i] > '\uFF00' && c[i] < '\uFF5F') {
c[i] = (char) (c[i] - 65248);
}
}
return new String(c);
}
//半角转全角
public static String BtoQ(String input){
char c[] = input.toCharArray();
for ( int i=0; i<c.length;i++ ) {
if (c[i] ==' ') {
c[i] = '\u3000';
} 
else if (c[i]<'\177') {
c[i]= (char) (c[i]+65248);
}
}
return new String(c);
}


最后更新:2017-04-02 17:09:28

  上一篇:go TextView在xml里配置onclick事件
  下一篇:go Android【 ListView】滑动数据加载