重点:根据字母的偏移值重新计算其编码
// 把输入的字符串转换为半角
public String toDBCS(String str) {
if (str == null) {
return "";
}
StringBuffer sb = new StringBuffer();
for (int i = 0, n = str.length(); i< n; i++) {
int c = str.charAt(i);
if ((c >= 'a') && (c<= 'z')) {
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();
}
// 把输入的字符串转换为全角
public String toSBCS(String str) {
if (str == null) {
return "";
}
StringBuffer sb = new StringBuffer();
for (int i = 0, n = str.length(); i< n; i++) {
int c = str.charAt(i);
if ((c >= 'A') && (c <= 'Z')) {
c = (c + 'A') - 'A';
} else if ((c >= '0') && (c <= '9')) {
c = (c + '0') - '0';
} else if ((c >= 'a') && (c <= 'z')) {
c = (c + 'a') - 'a';
}
sb.append((char) c);
}
return sb.toString();
}
// 把输入的字符串转换为半角
public String toDBCS(String str) {
if (str == null) {
return "";
}
StringBuffer sb = new StringBuffer();
for (int i = 0, n = str.length(); i< n; i++) {
int c = str.charAt(i);
if ((c >= 'a') && (c<= 'z')) {
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();
}
// 把输入的字符串转换为全角
public String toSBCS(String str) {
if (str == null) {
return "";
}
StringBuffer sb = new StringBuffer();
for (int i = 0, n = str.length(); i< n; i++) {
int c = str.charAt(i);
if ((c >= 'A') && (c <= 'Z')) {
c = (c + 'A') - 'A';
} else if ((c >= '0') && (c <= '9')) {
c = (c + '0') - '0';
} else if ((c >= 'a') && (c <= 'z')) {
c = (c + 'a') - 'a';
}
sb.append((char) c);
}
return sb.toString();
}
本文介绍了一种用于将字符串从半角字符转换为全角字符及反之的方法。通过简单的字符偏移实现了这一转换过程,这对于处理中日韩统一表意文字(CJK)的文本特别有用。文章提供了具体的Java代码示例,展示了如何实现这种转换。
266

被折叠的 条评论
为什么被折叠?



