您的位置:首页 > 编程语言 > Java开发

JAVA中如何处理中文的全角和半角问题- -

2007-06-13 13:59 701 查看
/**
* 把给定的中文字符串转化为定宽字符串,若源串长则裁掉,若不足则在尾端补足。
* 保证转化后的字符串只包含中文全角字符。
*/
public static String fixedWidthStringDBCS(String str, int width, char fill) {
if (str==null) str = "";
if (fill < 256) fill = ' ';
StringBuffer sb = new StringBuffer();

int i=0;
for ( ; i<str.length() && i<width; i++) {
int c = str.charAt(i);
if (c >= 'a' && c<='z') { //azAZ 019
c = c + 'a' - 'a';
} else if (c >= 'A' && c<= 'Z') {
c = c + 'A' - 'A';
} else if (c >= '0' && c<= '9') {
c = c + '0' - '0';
} else if (c < 256) {
c = fill;
}

sb.append((char)c);
}

for ( ; i<width; i++) {
sb.append(fill);
}

return sb.toString();
}

我改写的一个简便功能的方法:

public String fixedWidthStringDBCS(String str) {
if (str==null) str = "";
int width = str.length();
StringBuffer sb = new StringBuffer();

int i=0;
for ( ; i<str.length() && i<width; i++) {
int c = str.charAt(i);
if (c >= 'a' && c<='z') { //azAZ 019
c = c + 'a' - 'a';
} else if (c >= 'A' && c<= 'Z') {
c = c + 'A' - 'A';
} else if (c >= '0' && c<= '9') {
c = c + '0' - '0';
}

sb.append((char)c);

}

return sb.toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: