java判断一个字符串是中文还是英文

 我来答
受司大人
2015-05-29 · 知道合伙人影视综艺行家
受司大人
知道合伙人影视综艺行家
采纳数:20262 获赞数:171847
毕业于浙江广厦,有一定的电脑专业基础和两年工作经验,读过相关书籍多本

向TA提问 私信TA
展开全部
在做开发的时候我们经常需要用到根据某个字符或者字符串来判断其是中文还是英文,从而做相应的处理,其实不难,大多数人们都是用到正则来判断的,下面小贝就给大家分享一下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("
程序员"));
lionheart1988
2015-05-29 · TA获得超过6445个赞
知道大有可为答主
回答量:5772
采纳率:72%
帮助的人:2472万
展开全部
用正色表达式来判断
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() ? "包含中文" : "纯英文");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
等到枫叶在红
2015-05-29
知道答主
回答量:1
采纳率:0%
帮助的人:1246
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dl96200
2015-05-29 · TA获得超过498个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:152万
展开全部
这个用正则表达式就行了,java string里面有个方法是可以匹配正则的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式