当前位置: 首页 > news >正文

java 判断是不是英文怎么说_java判断一个字符串是中文还是英文

展开全部

下满给出示例代码,62616964757a686964616fe4b893e5b19e31333337396231希望对你有帮助

Java中判断字符串的编码有两种思路:

一种是根据byte的长度判断,英文的字母数字好标点符号都是一个byte,且值在0-255之间

另一种是根据中文的Unicode取值范围判断,这个就是把所以的范围都包含,才能判断正确,参考unicode中文范围:http://www.yuanxingyuan.com/?id=14

示例代码:

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class StringTest {

//英文占1byte,非英文(可认为是中文)占2byte,根据这个特性来判断字符

public static boolean checkChar(char ch) {

if ((ch + "").getBytes().length == 1) {

return true;//英文

} else {

return false;//中文

}

}

public static String checkString(String str) {

String res = "";

if (str != null) {

for (int i = 0; i 

//只要字符串中有中文则为中文

if (!checkChar(str.charAt(i))) {

res = "中文";

break;

} else {

res = "英文";

}

}

}

return res;

}

//判断是不是中文

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;

}

//判断是不是英文字母

public static boolean isEnglish(String charaString) {

return charaString.matches("^[a-zA-Z]*");

}

//根据中文unicode范围判断u4e00 ~ u9fa5不全

public static String isChinese(String str) {

String regEx1 = "[\\u4e00-\\u9fa5]+";

String regEx2 = "[\\uFF00-\\uFFEF]+";

String regEx3 = "[\\u2E80-\\u2EFF]+";

String regEx4 = "[\\u3000-\\u303F]+";

String regEx5 = "[\\u31C0-\\u31EF]+";

Pattern p1 = Pattern.compile(regEx1);

Pattern p2 = Pattern.compile(regEx2);

Pattern p3 = Pattern.compile(regEx3);

Pattern p4 = Pattern.compile(regEx4);

Pattern p5 = Pattern.compile(regEx5);

Matcher m1 = p1.matcher(str);

Matcher m2 = p2.matcher(str);

Matcher m3 = p3.matcher(str);

Matcher m4 = p4.matcher(str);

Matcher m5 = p5.matcher(str);

if (m1.find() || m2.find() || m3.find() || m4.find() || m5.find())

return "中文";

else

return "英文";

}

public static void main(String[] args) {

System.out.println("使用长度判断:");

System.out.println(checkString("Hello++"));

System.out.println(checkString("Hello++。、,?"));

System.out.println(checkString("Hello++编程"));

System.out.println(checkString("编程"));

System.out.println("\r\n使用正则表达式判断:");

System.out.println(isChinese("Hello++"));

System.out.println(isChinese("Hello++。、,?"));

System.out.println(isChinese("Hello++编程"));

System.out.println(isChinese("编程"));

System.out.println("\r\n使用Character.UnicodeBlock");

System.out.println(isChinese('h')?"中文":"英文");

System.out.println(isChinese(',')?"中文":"英文");

System.out.println(isChinese('。')?"中文":"英文");

System.out.println(isChinese('编')?"中文":"英文");

}

}

运行结果:

使用长度判断:

英文

中文

中文

中文

使用正则表达式判断:

英文

中文

中文

中文

使用Character.UnicodeBlock

英文

英文

中文

中文

相关文章:

  • linux+mysql运算符_MySQL 运算符
  • saxreader java_SAXReader saxReader = new SAXReader();来解析xml文件
  • 埃森哲java转sfdc_【SFDC salesforce职责】2021年埃森哲SFDC salesforce岗位职责-看准网...
  • JAVA循环读取菜单_java循环菜单
  • mysql一条sql的执行过程_【MySQL深入】一条SQL的执行过程
  • java高级编程英语单词_Java高级编程
  • 强对象 java_java对象的强引用,软引用,弱引用和虚引用
  • grafana mysql插件_grafana插件动态数据
  • java runtime api_java runtime 入门
  • java中capitals_Java程序按值对映射进行排序
  • PHP两文件嵌套循环引用,thinkphp模板多层循环嵌套无效问题?
  • php提供了什么来实现反射,php提供了什么来实现反射
  • java一个函数回调自身,基于Java 谈回调函数
  • sigbus php,php进程的SIGBUS故障
  • php登录模块实现,php登录模块代码
  • angular学习第一篇-----环境搭建
  • Docker入门(二) - Dockerfile
  • EventListener原理
  • IDEA常用插件整理
  • Invalidate和postInvalidate的区别
  • iOS | NSProxy
  • javascript 哈希表
  • JS变量作用域
  • Js基础知识(四) - js运行原理与机制
  • laravel5.5 视图共享数据
  • leetcode98. Validate Binary Search Tree
  • Nodejs和JavaWeb协助开发
  • PermissionScope Swift4 兼容问题
  • PHP 小技巧
  • 分享一份非常强势的Android面试题
  • 力扣(LeetCode)965
  • 前嗅ForeSpider教程:创建模板
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 我的zsh配置, 2019最新方案
  • 项目实战-Api的解决方案
  • linux 淘宝开源监控工具tsar
  • Spring第一个helloWorld
  • $ git push -u origin master 推送到远程库出错
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十八)三元表达式和列表解析
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)http协议
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • ./configure,make,make install的作用(转)
  • .NET Core 版本不支持的问题
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .net 获取url的方法
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET中的十进制浮点类型,徐汇区网站设计
  • .vue文件怎么使用_vue调试工具vue-devtools的安装