猿问

如何判断一个特殊字符是英文的还是中文的?

  • 我这里要做一个输入的判断,汉字、英文和数字我都能识别出,特殊字符里面分有中文和英文的,不知道怎么区别,各位有没有什么方法解决?


GCT1015
浏览 2175回答 8
8回答

素胚勾勒不出你

不知道这样有没有用,可以试试正则表达式boolean result = yourString.contains("[-+.^:,]");

慕无忌1623718

这个方法检测特殊字符:Pattern&nbsp;p&nbsp;=&nbsp;Pattern.compile("[&%$#@!()*^]");&nbsp;//<----&nbsp;you&nbsp;can&nbsp;add&nbsp;more&nbsp;characters&nbsp;to&nbsp;check&nbsp;here&nbsp; Matcher&nbsp;m&nbsp;=&nbsp;p.matcher(myEditText2); if&nbsp;(m.find())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;editText.setError("you&nbsp;can&nbsp;not&nbsp;enter&nbsp;special&nbsp;Character"); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; }导入包:import&nbsp;java.util.regex.Matcher; import&nbsp;java.util.regex.Pattern;

慕容708150

&nbsp;&nbsp;&nbsp;char[]&nbsp;myChar&nbsp;=&nbsp;s.toCharArray(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;myChar.length;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((char)&nbsp;(byte)&nbsp;myChar[i]&nbsp;!=&nbsp;myChar[i])&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//中文相关字符 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}试一下这个看看可以么String str = "我爱你,xr.";char[] array = str.toCharArray();int chineseCount = 0;int englishCount = 0;for (int i = 0; i < array.length; i++) {if((char)(byte)array[i]!=array[i]){chineseCount++;}else{englishCount++;}}这个是加入计数后的代码 可以计算中文字符和英文字符个数 其中中文字符包含汉子 英文字符包含字母

料青山看我应如是

String&nbsp;s="你"; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(String.valueOf(s.charAt(0)).getBytes().length==2){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("是中文"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("不是中文"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

PIPIONE

中文的字符ASCII码值在128—255之间(或者是小于零,中文字符一般占用两个字节),英文的字符ASCII码值在0—128之间。

FFIVE

String&nbsp;ss&nbsp;=&nbsp;"你"; Pattern&nbsp;pattern=Pattern.compile("[\u4e00-\u9fa5]");&nbsp;&nbsp; Matcher&nbsp;matcher=pattern.matcher(ss);用正则matcher为true是中文

慕田峪4524236

public&nbsp;static&nbsp;String&nbsp;distinguish(String&nbsp;src)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;result&nbsp;=&nbsp;""; &nbsp;&nbsp;&nbsp;&nbsp;Pattern&nbsp;p; &nbsp;&nbsp;&nbsp;&nbsp;Matcher&nbsp;m; &nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;=&nbsp;Pattern.compile("[\u4e00-\u9fa5]"); &nbsp;&nbsp;&nbsp;&nbsp;m&nbsp;=&nbsp;p.matcher(src); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(m.find())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;result&nbsp;+&nbsp;"有汉字&nbsp;&nbsp;"; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;=&nbsp;Pattern.compile("[a-zA-Z]"); &nbsp;&nbsp;&nbsp;&nbsp;m&nbsp;=&nbsp;p.matcher(src); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(m.find())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;result&nbsp;+&nbsp;"有字母&nbsp;&nbsp;"; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;=&nbsp;Pattern.compile("[0-9]"); &nbsp;&nbsp;&nbsp;&nbsp;m&nbsp;=&nbsp;p.matcher(src); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(m.find())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;result&nbsp;+&nbsp;"有数字&nbsp;&nbsp;"; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;=&nbsp;Pattern.compile("\\p{Punct}"); &nbsp;&nbsp;&nbsp;&nbsp;m&nbsp;=&nbsp;p.matcher(src); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(m.find())&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;result&nbsp;+&nbsp;"有标点符号&nbsp;&nbsp;"; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result; }
随时随地看视频慕课网APP

相关分类

Java
我要回答