文档章节

java对于半角和全角的转换

指尖残雪
 指尖残雪
发布于 2016/05/22 23:57
字数 387
阅读 275
收藏 0

本文章转载自: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);
}




本文转载自:http://blog.csdn.net/bq1073100909/article/details/39272427

共有 人打赏支持
指尖残雪
粉丝 7
博文 73
码字总数 0
作品 0
上海
后端工程师
Hutool之类型转换类——Convert

类型转换类 在Java开发中我们要面对各种各样的类型转换问题,尤其是从命令行获取的用户参数、从HttpRequest获取的Parameter等等,这些参数类型多种多样,我们怎么去转换他们呢?常用的办法是...

路小磊
2014/05/29
0
0
在JAVA下实现数据库对word文件的读取与字段的提取

在JAVA下实现数据库对word文件的读取与字段的提取   实现excel中的数据导入数据库,在java或是C#下是不难实现的,即使想实现在txt中的数据导入也不是什么难事,但是,最近接了个任务,学校...

Pig-man
2012/08/17
0
0
Java的JDBC数据库连接池实现方法

虽然J2EE程序员一般都有现成的应用服务器所带的JDBC数据库连接池,不过对于开发一般的Java Application、 Applet或者JSP、velocity时,我们可用的JDBC数据库连接池并不多,并且一般性能都不好...

lixun
2012/10/11
0
0
Androidstudio部署操作

下图是我配置成功运行后的截图: androidstudio虽然界面很炫,操作方面和eclipse有很高的兼容。但整体来说目前给我感觉还不是太成熟。配置过程也比较麻烦,这主要由于一些环境变量的设置不是...

postdep
2013/05/18
0
0
java正则表达式匹配全角空格

网上找了半天没找到,自己试了一个: 例:String test = " 祥/n        视频/n :/w "; //注意中间既包含了全角空格,也包含了半角空格 String[] subtest = test.split(" "); //使用半...

九爷
2012/05/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
0
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
6
2
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部