Java判断字符串是否是乱码
来源:互联网 发布:淘宝卖出的钱在哪里 编辑:程序博客网 时间:2024/04/30 12:10
转自:http://blog.icoolxue.com/java-to-determine-whether-a-string-is-garbled-pro-testing-available/
经过几天的努力,终于给爱酷学习网(http://www.icoolxue.com)加上了搜索引擎的支持,现在你可以搜索自己喜欢的视频教程啦。
PS:爱酷学习网是一个全面的视频教程网站,有各类计算机类视频如Java/C/C++/Android/Hiberante等等。
而由此也带来了一个问题,在用户输入查询字符串之后,虽然我已经想尽一切办法解决了乱码问题,但是真正在线上的时候,还是遇到了乱码,百思而不得其解:
可以看到,乱码问题一直存在,于是我在想,如果能判断搜索字符串如果是乱码的话,就不将该条搜索进行处理(意思就是说只搜索,而不将该字符串存放到数据库中),好吧,代码如下:
/**
* 判断字符是否是中文
*
* @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 strName 字符串
* @return 是否是乱码
*/
public
static
boolean
isMessyCode(String strName) {
Pattern p = Pattern.compile(
"\\s*|\t*|\r*|\n*"
);
Matcher m = p.matcher(strName);
String after = m.replaceAll(
""
);
String temp = after.replaceAll(
"\\p{P}"
,
""
);
char
[] ch = temp.trim().toCharArray();
float
chLength = ch.length;
float
count =
0
;
for
(
int
i =
0
; i < ch.length; i++) {
char
c = ch[i];
if
(!Character.isLetterOrDigit(c)) {
if
(!isChinese(c)) {
count = count +
1
;
}
}
}
float
result = count / chLength;
if
(result >
0.4
) {
return
true
;
}
else
{
return
false
;
}
}
public
static
void
main(String[] args) {
System.out.println(isMessyCode(
"韩顺平"
));
System.out.println(isMessyCode(
"你好"
));
}
相关代码已经注释,谢谢支持。
0 0
- Java判断字符串是否是乱码
- Java判断字符串是否是乱码
- 判断字符串是否是乱码
- Java判断字符串是否是乱码(亲测可用)
- java判断是否是乱码
- java判断字符串是否乱码
- [JAVA]判断字符串是否为乱码
- [JAVA]判断字符串是否为乱码
- java判断字符串是否为乱码
- java判断字符串是否是数字
- java判断字符串是否是数字
- java 判断字符串是否是IP
- java判断字符串是否是数字
- java判断字符串是否是纯数字
- Java判断一个字符串是否是数字
- android:java 判断字符串是否是数字
- java判断字符串是否是整形数字
- java判断字符串是否是日期类型
- 【iOS开发-35】有了ARC内存管理机制,是否还需要担心内存溢出等问题?——面试必备
- android launchmodel的使用
- Android 保证listview中的在getview中,保证setText成功设置
- mac 下javaHL的解决 no svnjavahl in java.library.path
- 常见算法笔试或面试题
- Java判断字符串是否是乱码
- Struts-2.1翻译及源文件
- sql语句里的limit使用方法
- mysql优化(一)
- ubuntu12.04 ros开源库安装教程
- Lucene4.3搜索引擎开发之路分享
- 嵌入式 uboot默认参数的修改
- cocoapods安装及使用的详细步骤
- NFS安装配置