java判断输入字符串是汉字或者字母 , 比如我要求用户输入姓名 姓名只能为汉字 或者英文 我怎么去判断 不要

如题所述

只要分析字符串中每个字符是中文或英文就行了
你需要一个判断字符是中文或英文的函数

因为java中字符类型char是以unicode存储的
所以不管是中文字符还是英文字符 都可以通过判断char的Unicode范围
boolean isCnorEn(char c)
{
if((c >= 0x0391 && c <= 0xFFE5) //中文字符
|| (c>=0x0000 && c<=0x00FF)) //英文字符
return true;
return false;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-12
这个程序因为设计的有缺陷,让人会误解,我给你加几条语句。
import java.io.*;
public class digui
{
public static void main(String[] args) throws IOException
{

BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
String Name=null,Addr=null,Birt=null,Phone=null;
System.out.println("请输入您的姓名:");
Name=br.readLine();
System.out.println("请输入您的家庭地址:");
Addr=br.readLine();
System.out.println("请输入您的出生日期:");
Birt=br.readLine();
System.out.println("请输入您的电话号码:");
Phone=br.readLine();
System.out.println("姓名:"+ Name +" 家庭地址:"+ Addr +" 出生日期:"+ Birt +" 电话号码:"+ Phone);

}

}
这样就一目了然了。

您的进步是我最大的动力,如果你觉得我回答的合理的话,请给我多加分。谢谢,如果不明白的话,请给我留言。大家相互学习啊! 加油!
第2个回答  2011-01-12
public boolean gbk(String str)
{
char[] chars=str.toCharArray();
boolean isGB2312=false;
for(int i=0;i<chars.length;i++){
byte[] bytes=(""+chars[i]).getBytes();
if(bytes.length==2){
int[] ints=new int[2];
ints[0]=bytes[0]& 0xff;
ints[1]=bytes[1]& 0xff;
if(ints[0]>=0x81 && ints[0]<=0xFE && ints[1]>=0x40 && ints[1]<=0xFE){
isGB2312=true;
break;
}
}
}
return isGB2312;
}

参考资料:http://blog.csdn.net/teamoli/archive/2008/10/29/3176597.aspx

相似回答