温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java怎么判断字符串是否含有乱码

发布时间:2021-05-23 09:53:21 来源:亿速云 阅读:1561 作者:小新 栏目:编程语言

小编给大家分享一下Java怎么判断字符串是否含有乱码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

具体代码如下所示:

/**
  * 判断字符是否是中文
  *
  * @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("&Atilde;&copy;&Aring;&cedil;&Acirc;&copy;&Atilde;&copy;&Acirc;&iexcl;&Acirc;&ordm;&Atilde;&yen;&Acirc;&sup1;&Acirc;&sup3;"));
  System.out.println(isMessyCode("你好"));
 }

Java可以用来干什么

Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。

以上是“Java怎么判断字符串是否含有乱码”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI