文档章节

java对于半角和全角的转换

指尖残雪
 指尖残雪
发布于 2016/05/22 23:57
字数 387
阅读 206
收藏 0
点赞 2
评论 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的JDBC数据库连接池实现方法

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

lixun
2012/10/11
0
0
在JAVA下实现数据库对word文件的读取与字段的提取

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

Pig-man
2012/08/17
0
0
Androidstudio部署操作

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

postdep
2013/05/18
0
0
windows7下搭建Android开发环境的方法

对于新手来说,android开发环境的搭建与配置还是比较繁琐的,因为要下载的文件多,需要的时间比较长。这里摘录整理整个搭建过程的具体方法与步骤,以供参考。 1 准备工作 首先,你最好一边下...

Jian-Yong
2012/01/18
0
0
在Native code中访问java 对象(I)

打通了连接Java世界和native世界的通道之后,摆在我们面前的问题,就变为了,如何在native code中,来操作Java object呢?Java object可以分为如下3种: Java Language的基本数据类型,或称为...

WolfCS
2013/04/29
0
0
Java类动态加载(二)——动态加载class文件

想要在jvm启动后,动态的加载class类文件,我们首先需要了解Instrumentation、Attach、Agent、VirtualMachine、ClassFileTransformer这几个类的用法和他们之间的关系。 Java的com.sun.tools...

2k10
2015/03/20
0
0
java正则表达式匹配全角空格

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

九爷
2012/05/05
0
0
浅析:Java与C++的主要区别

Java区别于C++ 表面看来两者最大的不同在于Java没有指针,或者说,Java满地都是指针。对于编程者而言Java的这种设计是安全且更易用的。说Java满地是指针的原因在于它把指针的功能隐藏了,其实...

Ace☞Tseng
2012/10/09
0
0
对JDBC的支持 之 7.1 概述

概述 JDBC回顾 传统应用程序开发中,进行JDBC编程是相当痛苦的,如下所示: //cn.javass.spring.chapter7. TraditionalJdbcTest @Test public void test() throws Exception { Connection co...

heroShane
2014/02/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
4
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
1
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
165
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0
开发技术瓶颈期,如何突破

前言 读书、学习的那些事情,以前我也陆续叨叨了不少,但总觉得 “学习方法” 就是一个永远在路上的话题。个人的能力、经验积累与习惯方法不尽相同,而且一篇文章甚至一本书都很难将学习方法...

_小迷糊
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部