java,php,asp.net,linux,javascript,mysql,mssql,oracle,编程
java编程
java编程
java全角半角转换
Java代码
package
com.test;
public
class
test {
public
static
void
main(String[] args) {
String QJstr =
"hello"
;
String QJstr1 =
"he,。h‘“”e"
;
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;
}
/**/
// /
/// 转全角的函数(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://www.pmjava.com/?thread-62958-1.html
posted on 2009-06-20 03:18
rrong_m
阅读(1140)
评论(0)
编辑
收藏
Powered by:
BlogJava
Copyright © rrong_m
<
2009年6月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
导航
BlogJava
首页
新随笔
聚合
管理
统计
随笔 - 38
文章 - 115
评论 - 0
引用 - 0
常用链接
我的随笔
我的文章
我的评论
我的参与
随笔档案
2009年7月 (1)
2009年6月 (42)
文章分类
j2ee
(rss)
java(4)
(rss)
javascript(8)
(rss)
文章档案
2009年6月 (110)
java编程
java php asp.net编程
java php asp.net编程
搜索
积分与排名
积分 - 72370
排名 - 762
最新评论
阅读排行榜
1. hibernate映射clob blob字段(4528)
2. java去标点符号 正则(3469)
3. java substring截取字符串 汉字和字母(2980)
4. java获取google 的简单天气预报(2002)
5. 递归删除父节点及所有子节点(1655)
评论排行榜
1. 博客搬家(0)
2. sql版 魔方算法(0)
3. mysql 保留字(0)
4. java去标点符号 正则(0)
5. java全角半角转换(0)