java判断一个字符串是中文还是英文
4个回答
2015-05-29 · 知道合伙人影视综艺行家
关注
展开全部
在做开发的时候我们经常需要用到根据某个字符或者字符串来判断其是中文还是英文,从而做相应的处理,其实不难,大多数人们都是用到正则来判断的,下面小贝就给大家分享一下Java判断字符串是中文还是英文
推荐文章: Java用pinyin4j根据汉语获取各种格式和需求的拼音
Java根据汉字字符串检索出字符首字母
public class ChineseAndEnglish {
// GENERAL_PUNCTUATION 判断中文的"号
// CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号
// HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号
/**
* 是否是中文
* @param c
* @return
*/
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;
}
/**
* 是否是英文
* @param c
* @return
*/
public static boolean isEnglish(String charaString){
return charaString.matches("^[a-zA-Z]*");
}
public static boolean isChinese(String str){
String regEx = "[\\u4e00-\\u9fa5]+";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
if(m.find())
return true;
else
return false;
}
public static void main(String[] args) {
System.out.println(isChinese('员'));
System.out.println(isChinese('s'));
System.out.println(isEnglish("之家"));
System.out.println(isEnglish("robert"));
System.out.println(isChinese("
程序员"));
推荐文章: Java用pinyin4j根据汉语获取各种格式和需求的拼音
Java根据汉字字符串检索出字符首字母
public class ChineseAndEnglish {
// GENERAL_PUNCTUATION 判断中文的"号
// CJK_SYMBOLS_AND_PUNCTUATION 判断中文的。号
// HALFWIDTH_AND_FULLWIDTH_FORMS 判断中文的,号
/**
* 是否是中文
* @param c
* @return
*/
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;
}
/**
* 是否是英文
* @param c
* @return
*/
public static boolean isEnglish(String charaString){
return charaString.matches("^[a-zA-Z]*");
}
public static boolean isChinese(String str){
String regEx = "[\\u4e00-\\u9fa5]+";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
if(m.find())
return true;
else
return false;
}
public static void main(String[] args) {
System.out.println(isChinese('员'));
System.out.println(isChinese('s'));
System.out.println(isEnglish("之家"));
System.out.println(isEnglish("robert"));
System.out.println(isChinese("
程序员"));
展开全部
用正色表达式来判断
package string;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo5
{
public static void main(String[] args)
{
String string = new Scanner(System.in).nextLine();
Pattern pattern = Pattern.compile("[\u4E00-\u9FA5]");
Matcher matcher = pattern.matcher(string);
System.out.println(matcher.find() ? "包含中文" : "纯英文");
}
}
package string;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demo5
{
public static void main(String[] args)
{
String string = new Scanner(System.in).nextLine();
Pattern pattern = Pattern.compile("[\u4E00-\u9FA5]");
Matcher matcher = pattern.matcher(string);
System.out.println(matcher.find() ? "包含中文" : "纯英文");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static boolean isContainChinese(String str) {// 检测是否包含中文
String regEx = "[\\u4E00-\\u9FA5]+";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
if (m.find()) {
return true;
} else {
return false;
}
}
判断是否为应为就直接判断是否属于a-z和A-Z
String regEx = "[\\u4E00-\\u9FA5]+";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
if (m.find()) {
return true;
} else {
return false;
}
}
判断是否为应为就直接判断是否属于a-z和A-Z
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个用正则表达式就行了,java string里面有个方法是可以匹配正则的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询