问题描述
我只知道中英文怎么写,加个数字就不知道怎么办了String test = "aa"; byte []bytes = test.getBytes(); int i = bytes.length;//i为字节长度 int j = test.length();//j为字符长度 if(i=j){ System.out.println("你输入的是英文")}else{ System.out.println("你输入的是中文");}
解决方案
String test = "1a"; byte []bytes = test.getBytes(); int i = bytes.length;//i为字节长度 int j = test.length();//j为字符长度 if(Pattern.compile("[0-9]*").matcher(test).matches()){ System.out.println("你输入的是数字") ; }else if(i==j){ System.out.println("你输入的是英文") ; }else{ System.out.println("你输入的是中文"); } 帮你测试好了!
解决方案二:
1用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; }2用正则表达式public static boolean isNumeric(String str){ Pattern pattern = Pattern.compile("[0-9]*"); return pattern.matcher(str).matches(); } 3用ascii码public static boolean isNumeric(String str){ for(int i=str.length();--i>=0;){ int chr=str.charAt(i); if(chr<48 || chr>57) return false; } return true;}
解决方案三:
使用正则判断数字public boolean isNumeric(String str){Pattern pattern = Pattern.compile("[0-9]*");Matcher isNum = pattern.matcher(str);if( !isNum.matches() ){return false;}return true;}