`
skzr.org
  • 浏览: 362810 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

我写的全角半角转换

    博客分类:
  • J2EE
阅读更多

要做全角转换为半角:

(中文网页)网络上的都是getBytes然后修改字节得到

发现根本无法正常运行,自己就思考了下:

全角比半角的差别应该就是一些原来单字节可以描述的字符变成了双字节了

所以只要做一个映射就可以了

static {//初始化全、半角映射
        qbMap.put(
' ', ' '); //空格特殊
        bqMap.put(' ',
' ' );
        for (int c = '!', end = '~', det = '!' - '!'; c <= end; c++) {
            Character b = (char) c, q = (char) (c + det);
            qbMap.put(q, b);
            bqMap.put(b, q);
        }
    }

public abstract class UtilString {
	private static final Logger logger = LoggerFactory.getLogger(UtilString.class);
	private static final Map<Character, Character> qbMap = new TreeMap<Character, Character>(),
		bqMap = new TreeMap<Character, Character>();
	
	static {//初始化全、半角映射
		qbMap.put(' ', ' '); //空格特殊
		bqMap.put(' ', ' ');
		for (int c = '!', end = '~', det = '!' - '!'; c <= end; c++) {
			Character b = (char) c, q = (char) (c + det);
			qbMap.put(q, b);
			bqMap.put(b, q);
		}
	}
	
	/** @return 转换为半角 */
	public static char q2b(char c) {
		Character ret = qbMap.get(c);
		return ret == null ? c : ret;
	}
	
	/** @return 转换为半角 */
	public static String q2b(String value) {
		if (value == null || value.isEmpty()) return value;
		StringBuilder buf = new StringBuilder(value.length());
		for (int i = 0, max = value.length(); i < max; i++) {
			buf.append(q2b(value.charAt(i)));
		}
		return buf.toString();
	}
	
	/** @return 转换为全角 */
	public static char b2q(char c) {
		Character ret = bqMap.get(c);
		return ret == null ? c : ret;
	}
	
	/** @return 转换为全角 */
	public static String b2q(String value) {
		if (value == null || value.isEmpty()) return value;
		StringBuilder buf = new StringBuilder(value.length());
		for (int i = 0, max = value.length(); i < max; i++) {
			buf.append(b2q(value.charAt(i)));
		}
		return buf.toString();
	}
}
分享到:
评论

相关推荐

    日文全角半角转化

    日文全角半角转换是指将日文中的全角字符转换为半角字符或将半角字符转换为全角字符的过程。在计算机编程中,日文全角半角转换是非常重要的一步,因为它可以确保日文字符的正确显示和处理。 在 Java 编程语言中,...

    字符串的全角半角转换 java

    在Java编程中,字符串的全角半角转换是一项常见的需求,尤其在处理用户输入或文本显示时。全角字符和半角字符的区别在于他们的宽度和编码方式。全角字符(全宽度字符)通常用于东亚语言,如中文、日文、韩文等,每个...

    全角半角转换函数.txt

    综上所述,全角半角转换函数在文本处理领域具有重要的实用价值,尤其在东亚语言环境中,对于确保文本正确显示、计算和对齐具有不可或缺的作用。通过对上述函数的理解和应用,可以有效提升软件产品的国际化水平和用户...

    C++全角半角字符转换

    C++全角半角字符转换

    java 全角半角转换

    java 全角半角转换 对角对全角的转换

    全角半角转换,c++

    ### 全角半角转换的原理 全角字符与半角字符之间的转换主要是基于字符编码的不同。对于英文字母、数字以及部分符号,全角字符的Unicode编码位于U+FF01至U+FF5E区间内,比其对应的半角字符的Unicode编码高0xFEE0。...

    全角半角 转换器

    全角 半角 转换器 C C++ 无需安装 小巧易用

    全角半角转换工具,编程后发现问题时可以对大把的程序改变,不必再一个一个手动修改,很方便!

    全角半角转换工具在IT行业中是一个非常实用的小型软件,尤其对于程序员和文本编辑者来说,它大大提升了工作效率。全角和半角字符在计算机处理文本时具有不同的表示方式和占用空间,理解它们的区别是理解和使用这类...

    解决.NET2.0全角半角转换麻烦的补丁

    .NET Framework 2.0虽然提供了丰富的字符串操作方法,但在全角半角转换方面并没有专门的内置函数。因此,开发者需要自定义解决方案来完成这个任务。标题中的"补丁"可能是指一个自定义的C#类或者方法,用于解决这个...

    Flex 日语全角半角转换

    标题中的“Flex 日语全角半角转换”指的是在Adobe Flex这一编程环境中处理日语文本时,涉及到全角字符(全宽度字符)和半角字符(半宽度字符)的转换问题。在日语中,全角字符通常用于正式文本,而半角字符则常见于...

    全角半角数字转换工具v1.0713中文绿色免费版

    全角半角转换工具是一款可以批量将全角转换成半角,或批量将半角转换为全角的软件。全角半角转换工具支持文件导入、导出。 使用方法 1.将带有全角数字的新闻(Ctrl C)复制,在(Ctrl V)粘贴到上面文本框内。 2....

    java全角半角转换程序

    ### Java全角半角转换程序知识点详解 #### 核心概念 在计算机处理文本时,全角字符和半角字符是常见的编码问题。全角字符主要用于东亚语言(如中文、日语、韩语等),其宽度通常是半角字符的两倍。在ASCII码中,...

    C#实现字符串全角半角转换类

    这个`CharConverter`类提供了简洁的API,可以方便地集成到任何C#项目中,用于处理全角半角字符的转换需求。通过理解字符编码和Unicode码点,我们可以更好地理解和实现这类转换功能,这对于开发涉及多语言或特殊字符...

    全角半角字符串转换工具类Character.java

    全角转半角,半角转全角,全角半角字符串转换工具类Character.java

    全角半角转换

    在C#中,进行全角半角转换是常见的需求,例如在输入输出、格式化文本或者处理字符串时。 全角和半角转换的基本原理是:全角字符的Unicode编码范围通常在0x3000到0x30FF之间,而半角字符则是0x0020到0x007E。转换...

    如何批量修改字母标点全角半角?.docx

    批量修改字母标点全角半角的方法和技巧 在文档处理过程中,经常会碰到需要批量修改字母标点全角半角的问题,这些问题看似简单,但实际上却非常繁琐。幸运的是,我们可以使用 EmEditor 等文本编辑器来批量修改字母...

    字符串,标点符号全角半角转换

    ### 全角与半角转换原理 全角与半角字符的转换基于一定的对应关系。对于英文字符和数字而言,全角字符的Unicode码点是在其半角对应字符的基础上加上了65248。例如,半角的'A'的Unicode码点是65,其全角形式的码点...

    全角半角数字转换

    在处理中英文混合或者需要统一格式的文本时,全角半角数字的转换就显得尤为重要。 全角数字在全角状态下显示,0到9的数字分别对应的Unicode值为65296到65305,而半角数字对应的ASCII值则是48到57。转换程序的核心就...

    postgres全角转半角函数.txt

    对postgresql数据库中不规则的数据批量处理查询,有些是全角的,需要转换查询,匹配,可以使用这个方法postgres全角转半角函数.txt

    对全角半角字符串的处理

    以下是一段基于Delphi语言实现的全角半角转换示例代码: ```delphi const cCharCn: array [#32..#126] of string [2] = ( {}'', {!}'', {"}'", {#}'', {}'', {%}'', {&}'', {'}'', {(}'(', {)}')', {*}'', {+}'...

Global site tag (gtag.js) - Google Analytics