资讯专栏INFORMATION COLUMN

java字符全角半角转换

CollinPeng / 3406人阅读

摘要:序本文展示一下如何将进行半角与全角转换。术语全角进制转为进制半角进制转为进制工具类全角空格半角空格全角半角转换间隔验证输出工具类全角半角字符相互转换

本文展示一下如何将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工具类——全角半角字符相互转换

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/70222.html

相关文章

  • 使用Python转换全角字符串为半角

    摘要:而在使用英文输入法时我们将个英文字符所占的位置称为半角。需要注意的是只有在支持汉字等语言的计算及上才存在全角和半角的概念。由于在规定中半角字符是从开始到结束。当然除了以上的方式外还有其他的方式将全角转换为半角。 原文地址: http://52sox.com/use-python-t... 关于全角转换为半角的问题,其实源自在公司的运营人员在输入法切换的时候选择了全角,结果导致程序有时候...

    smallStone 评论0 收藏0
  • 用Python转换一些常见全角字符半角

    摘要:前言最近在爬日文小说的过程中,经常遇到全角甚至和和半角混用,造成我强迫症强烈不适,就着手专门写一个脚本处理之思路首先在网上寻找看是否已经有现成库脚本能做到,寻找一番之后只找到一些思路文章,这里就不重复了有一点要注意,不少文章里是的情况,里面 前言 最近在爬日文小说的过程中,经常遇到全角(甚至和和半角混用),造成我(强迫症)强烈不适,就着手专门写一个脚本处理之 思路 首先在网上寻找看是否...

    godlong_X 评论0 收藏0
  • JS基础篇-- JS对全角半角的验证,相互转化以及介绍

    摘要:全角占两个字节。汉字字符和规定了全角的英文字符及国标中的图形符号和特殊字符都是全角字符。在全角中,字母和数字等与汉字一样占据着等宽的位置。全角转换为半角 1.什么是全角和半角? 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置。全角占两个字节。 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。在全角中,字母和数字等...

    YancyYe 评论0 收藏0
  • JS基础篇--正则表达式详解

    摘要:下面整理一些常用的正则表达式。正则表达式中可以使用编码。每个正则表达式可带有一个或者多个标注用以标明正则表达式的行为。其中表示匹配项在字符串中的位置,而表示应用字符串表达式的字符串。 正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。下面整理一些常用的正则表达式。 常用的正则字符 正则字符 描述 :将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向...

    shmily 评论0 收藏0

发表评论

0条评论

CollinPeng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<