输入只能为中文字符和英文
解决方案 »
- 求用JAVA做出万年历从已知的1900年1月1日开始
- 在线急等 PB的字符加密算法在JAVA中为什么不能实现?????
- 关于读取文件权限奇怪问题?????????????
- 怎么把与MS SQL SERVER的连接改成Access的连接
- 布局怎么也实现不了我想要的.....
- JAVA 中把多个word文件合并成一个word文件的做法!
- 关于cvs的问题??
- Java中,给已存在的文件添加内容,但不覆盖文件原有内容,该如何操作
- Java初学者适合用什么样的可视化开发工具,请指点!专业的Java开发人员都用什么呢?
- 帮我看看这个程序!
- 在DOS下如何编译和运行带包的Java文件
- Quartz 能不能动态加载、删除任务及触发器
public class TestInputIsChineseOrEnglish {
public static void main(String[] args) {
String string = null;
Scanner scanner = new Scanner(System.in);
do{
string= scanner.nextLine();
for(int i=0; i<string.length(); i++)
if(isEnglish(string.charAt(i)) == false && isChinese(string.charAt(i)) == false){
System.out.println("error");break;}
System.out.println("correct");
}while(string.equals("exit") == false);//要退出请输入exit
}
public static boolean isEnglish(Character c){
return c.toString().matches("\\p{ASCII}");//0---127
}
public static boolean isChinese(char c) {
Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
|| ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
|| ub == Character.UnicodeBlock.GENERAL_PUNCTUATION//""
|| ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION//.
|| ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {//,
return true;
}
return false; }
}
String s = new String("百dds7f");
boolean b = s.matches("^[\u0391-\uFFE5A-Za-z]+$");
System.out.println(b);
主函数输入一行字符
进入判断
把字符串里字符一个一个取出来charAt(i)
用正则判断是否为英文isEnglish(Character c),是否为中文isChinese(char c)
如果是英文或者中文字符的话打印correct,否则打印error。
不过我觉得英文匹配"[a-zA-Z]+"合适点