java判断字符串中是否含有中文
2016-02-01 13:52
549 查看
这感觉其实是一个不太正规的方法,只是我在写爬取网页的东西的时候突然想到这可以用来判断是否包含中文,就是利用编码转码的方法:
url中网址中不能直接包含中文,中文需要先经过编码转换成一串字符(例如”你好”>>”%E4%BD%A0%E5%A5%BD”),而英文经过编码后是不会改变的(”hello”>>”hello”),所以:
最后得到结果:
但这里有一个必须注意的地方,因为部分字符经编码后也会变成%数字这种格式,所以还必须判断该数字代表的是字符还是中文的组成码,具体可根据URL编码表:http://www.w3school.com.cn/tags/html_ref_urlencode.html
url中网址中不能直接包含中文,中文需要先经过编码转换成一串字符(例如”你好”>>”%E4%BD%A0%E5%A5%BD”),而英文经过编码后是不会改变的(”hello”>>”hello”),所以:
public class Test{ public static boolean isChinese(String str) throws UnsupportedEncodingException { int len = str.length(); for(int i = 0;i < len;i ++) { String temp = URLEncoder.encode(str.charAt(i) + "", "utf-8"); if(temp.equals(str.charAt(i) + "")) continue; String[] codes = temp.split("%"); //判断是中文还是字符(下面判断不精确,部分字符没有包括) for(String code:codes) { if(code.compareTo("40") > 0) return true; } } return false; } public static void main(String[] args) throws Exception { while(true) { Scanner in = new Scanner(System.in); String temp = in.nextLine(); System.out.println(temp + "是否含有中文:" + isChinese(temp)); } } }
最后得到结果:
但这里有一个必须注意的地方,因为部分字符经编码后也会变成%数字这种格式,所以还必须判断该数字代表的是字符还是中文的组成码,具体可根据URL编码表:http://www.w3school.com.cn/tags/html_ref_urlencode.html
相关文章推荐
- Spring MVC配置静态资源的正常访问
- Java控制台输出程序运行时间
- JAVA-使用commos-fileupload实现文件上传与下载
- springMVC详细配置+Mysql+jdbcTemplate实现分页功能
- java根据IP获取用户所在地
- 使用工作集(Working Set)整理项目
- java程序 一次改变指定目录下所有文件编码(包括子目录中的文件)
- java.lang.UnsupportedOperationException: The user must supply a JDBC connection 报错
- 让android studio 支持 eclipse NDK工程
- eclipse 相关
- 在java代码中获取JVM参数(转)
- 本地方法(JNI)——从java 程序中调用C函数
- Java-基本数据类型
- Java中关于OOM的场景及解决方法(转)
- 【JavaSE】Java中多线程基本知识
- java main方法背后的故事?(转)
- 探秘Java虚拟机——内存管理与垃圾回收(转)
- java中三种常见内存溢出错误的处理方法(转)
- java中的移位运算符:<<,>>,>>>总结(转)
- Java api 入门教程 之 JAVA的包装类