您的位置:首页 > 其它

全角与半角之间的相互转换

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: