JAVA如何区分哪个是半角哪个是全角,两者如何转换. 如题,急 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 String str = "123";if (str.length() < str.getBytes().length) { return true;} else { return false;} 所谓的半角字符,它的 char 值一定是小于 128 的。若要转换嘛……穷举好了,反正也不多 :) String AscToHz(String s) { String hz=""; for (int i=1;i<=s.Length();i++) { BYTE c=s[i]; if (c>32 && c<128) hz=hz+String((char)163)+String((char)(128+c)); else hz=hz+String((char)c); } return(hz); } void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage(AscToHz(Edit1->Text)); } 可能可以解决你的问题 简单点 ,就判断是否小于256就行了。至于转换,对于数字可以这样static char getQuanJiao(char c) { return (char) ((int) c + ('0' - '0')); } public boolean isQuanjiao(String str) { for (int i = 0; i < str.length(); i++) { char code = str.charAt(i); int charDode = code; if (charDode >= 65281 && charDode < 65373) { return true; } } return false; } /*全角和半角的区别:全角是指中文输入法状态条中的“半月”变成“满月”的时候,此时输入的英文字符会占用两个字节,通俗地说,就是所输入的英文字符看起来和中文字一样宽。比如:全角状态下:ABCDEFGHIJKLMNOPQRSTUVWXYZ半角状态下:ABCDEFGHIJKLMNOPQRSTUVWXYZ另外,标点符号也分中文态和英文态两种,要注意它们之间的切换。比如:中文态下:,。;“”《》……英文态下:,.;""<>.........*/public class HanZiCheck { public void check(String str) { int length = str.length(); int bytLength = str.getBytes().length; //都是半角的情况 if(bytLength == length) { System.out.println("都是半角"); } //都是全角的情况 else if(bytLength == 2 * length) { System.out.println("都是全角"); } //有全角有半角 else { System.out.println("有全角有半角"); }} public static void main(String[] args) { HanZiCheck hzc=new HanZiCheck(); hzc.check("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); //全角 hzc.check("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); //半角 hzc.check(",.;<>........."); //半角 hzc.check(",。;“”《》……"); //全角 hzc.check("ABCD ABCDEF"); //全角半角混合 hzc.check(",.《》……"); //全角半角混合 hzc.check("我是全角字"); //全角汉字 hzc.check("我是半角字"); //半角汉字 }} 匹配正则表达式:[^\u4E00-\u9FA5]+http://www.blogjava.net/action/archive/2006/06/01/49743.html这有转换的例子 如何管理自己写的代码的 请教 Java 自定义异常 处理的问题 JAVA JNI数据传送问题 怪事!大家进来讨论 怎么把javabean中的一个数组传递到jsp页面形成下拉列表 请各位高手帮帮忙!解决一个小问题。 初学者的构造方法问题,求问~~ 请教一个jdbc:odbc打包的问题??? 请问一下,我在linux下已经安装了java SDK 但要如何配置环境变量? 如何把java程序编译成可执行的exe文件? 怎么使用package创建一个包? java post的问题(手机炸弹)
return true;
} else {
return false;
}
{
String hz="";
for (int i=1;i<=s.Length();i++)
{
BYTE c=s[i];
if (c>32 && c<128)
hz=hz+String((char)163)+String((char)(128+c));
else
hz=hz+String((char)c);
}
return(hz);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(AscToHz(Edit1->Text));
}
可能可以解决你的问题
至于转换,对于数字可以这样
static char getQuanJiao(char c) {
return (char) ((int) c + ('0' - '0'));
}
for (int i = 0; i < str.length(); i++) {
char code = str.charAt(i);
int charDode = code;
if (charDode >= 65281 && charDode < 65373) {
return true;
}
}
return false;
}
public class HanZiCheck {
public void check(String str) {
int length = str.length();
int bytLength = str.getBytes().length; //都是半角的情况
if(bytLength == length) {
System.out.println("都是半角");
} //都是全角的情况
else if(bytLength == 2 * length) {
System.out.println("都是全角");
} //有全角有半角
else {
System.out.println("有全角有半角");
}
}
public static void main(String[] args) {
HanZiCheck hzc=new HanZiCheck();
hzc.check("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); //全角
hzc.check("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); //半角
hzc.check(",.;<>........."); //半角
hzc.check(",。;“”《》……"); //全角
hzc.check("ABCD ABCDEF"); //全角半角混合
hzc.check(",.《》……"); //全角半角混合
hzc.check("我是全角字"); //全角汉字
hzc.check("我是半角字"); //半角汉字
}
}
这有转换的例子