全角与半角之间的相互转换
2007-07-30 16:06
585 查看
在JAVA程序中:
public class Test
{
public static void main(String [] args)
{
String QJstr="HELLO";
String QJstr1="HELLO";
String result=BQchange(QJstr);
String result1=QBchange(QJstr1);
System.out.println(QJstr+"/n"+result);
System.out.println(QJstr1+"/n"+result1);
}
//半角转全角
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;
}
}
输出结果为:
HELLO
HELLO
HELLO
HELLO
在JavaScript中:
<script language="JavaScript" type="text/javascript">
/*
把输入的字符串转换为半角
input: Str 任意字符串
output:DBCStr 半角字符串
说明:1、全角空格为12288,半角空格为32
2、其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
*/
function toDBC(Str) {
var DBCStr = "";
for(var i=0; i<Str.length; i++){
var c = Str.charCodeAt(i);
if(c == 12288) {
DBCStr += String.fromCharCode(32);
continue;
}
if (c > 65280 && c < 65375) {
DBCStr += String.fromCharCode(c - 65248);
continue;
}
DBCStr += String.fromCharCode(c);
}
return DBCStr;
}
/*
把输入的字符串转换为半角,并删除所有空格
input: Str 任意字符串
output:DBCStr 半角字符串
说明:1、全角空格为12288,半角空格为32
2、其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
*/
function toTrimDBC(Str) {
var DBCStr = "";
for(var i=0; i<Str.length; i++){
var c = Str.charCodeAt(i);
if(c == 12288 ||c == 32) {
continue;
}
if (c > 65280 && c < 65375) {
DBCStr += String.fromCharCode(c - 65248);
continue;
}
DBCStr += String.fromCharCode(c);
}
return DBCStr;
}
</script>
public class Test
{
public static void main(String [] args)
{
String QJstr="HELLO";
String QJstr1="HELLO";
String result=BQchange(QJstr);
String result1=QBchange(QJstr1);
System.out.println(QJstr+"/n"+result);
System.out.println(QJstr1+"/n"+result1);
}
//半角转全角
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;
}
}
输出结果为:
HELLO
HELLO
HELLO
HELLO
在JavaScript中:
<script language="JavaScript" type="text/javascript">
/*
把输入的字符串转换为半角
input: Str 任意字符串
output:DBCStr 半角字符串
说明:1、全角空格为12288,半角空格为32
2、其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
*/
function toDBC(Str) {
var DBCStr = "";
for(var i=0; i<Str.length; i++){
var c = Str.charCodeAt(i);
if(c == 12288) {
DBCStr += String.fromCharCode(32);
continue;
}
if (c > 65280 && c < 65375) {
DBCStr += String.fromCharCode(c - 65248);
continue;
}
DBCStr += String.fromCharCode(c);
}
return DBCStr;
}
/*
把输入的字符串转换为半角,并删除所有空格
input: Str 任意字符串
output:DBCStr 半角字符串
说明:1、全角空格为12288,半角空格为32
2、其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
*/
function toTrimDBC(Str) {
var DBCStr = "";
for(var i=0; i<Str.length; i++){
var c = Str.charCodeAt(i);
if(c == 12288 ||c == 32) {
continue;
}
if (c > 65280 && c < 65375) {
DBCStr += String.fromCharCode(c - 65248);
continue;
}
DBCStr += String.fromCharCode(c);
}
return DBCStr;
}
</script>