From e722cdb8c5b22097c3df672ccc691ad568a56be0 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期六, 16 九月 2023 11:35:49 +0800
Subject: [PATCH] 优化代码

---
 java110-utils/src/main/java/com/java110/utils/util/StringUtil.java |  216 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 215 insertions(+), 1 deletions(-)

diff --git a/java110-utils/src/main/java/com/java110/utils/util/StringUtil.java b/java110-utils/src/main/java/com/java110/utils/util/StringUtil.java
old mode 100644
new mode 100755
index 23c1fd2..4ce0dfb
--- a/java110-utils/src/main/java/com/java110/utils/util/StringUtil.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/StringUtil.java
@@ -7,8 +7,11 @@
 package com.java110.utils.util;
 
 
+import com.alibaba.fastjson.JSONObject;
+
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
+import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 
@@ -21,6 +24,8 @@
  */
 
 public class StringUtil {
+
+
     /**
      * Description: 鏍煎紡鍖栧瓧绗︿覆(鐢ㄦ埛缁勫缓琛ㄤ娇鐢�) <br>
      *
@@ -270,6 +275,18 @@
         }
     }
 
+    public static boolean isInteger(String str) {
+        try {
+            double value = Double.parseDouble(str);
+            if (value == Math.ceil(value)) {
+                return true;
+            }
+        } catch (Exception e) {
+            return false;
+        }
+
+        return false;
+    }
 
     /**
      * Description: 鑾峰緱瀛楃(byte)鐨勫疄闄呴暱搴�<br>
@@ -447,7 +464,22 @@
      * @return
      */
     public static boolean isEmpty(String str) {
-        return str == null || "".equals(str);
+        return str == null || "".equals(str.trim());
+    }
+
+    /**
+     * 鏍¢獙鏄惁涓篔SON
+     *
+     * @param msg
+     * @return
+     */
+    public static Boolean isJsonObject(String msg) {
+        try {
+            JSONObject.parseObject(msg);
+        } catch (Exception e) {
+            return false;
+        }
+        return true;
     }
 
     /**
@@ -481,4 +513,186 @@
 
         return description;
     }
+
+    /**
+     * json鏄惁鍖呭惈key 骞朵笖瀛樺湪鍊�
+     *
+     * @param param
+     * @param key
+     * @return
+     */
+    public static boolean jsonHasKayAndValue(JSONObject param, String key) {
+        if (param == null) {
+            return false;
+        }
+
+        if (!param.containsKey(key)) {
+            return false;
+        }
+
+        if (isEmpty(param.getString(key))) {
+            return false;
+        }
+
+        return true;
+    }
+
+    /**
+     * json鏄惁鍖呭惈key 骞朵笖瀛樺湪鍊�
+     *
+     * @param param
+     * @param key
+     * @return
+     */
+    public static boolean jsonHasKayAndValue(String param, String key) {
+        JSONObject paramObj = null;
+        try {
+            paramObj = JSONObject.parseObject(param);
+            return jsonHasKayAndValue(paramObj, key);
+        } catch (Exception e) {
+            return false;
+        }
+    }
+
+    public static String delHtmlTag(String str) {
+        String newstr = "";
+        newstr = str.replaceAll("<[.[^>]]*>", "");
+        newstr = newstr.replaceAll(" ", "");
+        newstr = newstr.replaceAll("&nbsp;", "");
+        return newstr;
+    }
+
+
+    public static String encodeEmoji(String orgStr) {
+        if (StringUtil.isEmpty(orgStr)) {
+            return orgStr;
+        }
+        String temp = orgStr;
+        Pattern pattern = Pattern.compile("[^\u0000-\uffff]", Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
+        Matcher matcher = pattern.matcher(orgStr);
+        while (matcher.find()) {
+            StringBuilder sb = new StringBuilder("[em:");
+            String mStr = matcher.group();
+            for (int i = 0; i < mStr.length(); i++) {
+                int emoji = mStr.charAt(i);
+                if (i < mStr.length() - 1) {
+                    sb.append(emoji).append('-');
+                } else {
+                    sb.append(emoji).append(']');
+                }
+            }
+            temp = temp.replaceAll(mStr, sb.toString());
+        }
+        return temp;
+    }
+
+    public static String decodeEmoji(String orgStr) {
+        if (StringUtil.isEmpty(orgStr)) {
+            return orgStr;
+        }
+        String temp = orgStr;
+        Pattern pattern = Pattern.compile("\\[em:[\\d\\-]+\\]", Pattern.CASE_INSENSITIVE);
+        Matcher matcher = pattern.matcher(orgStr);
+        while (matcher.find()) {
+            StringBuilder sb = new StringBuilder("\\[em:");
+            StringBuilder emojiSb = new StringBuilder();
+            String mStr = matcher.group();
+            String[] emojis = mStr.substring(4, mStr.length() - 1).split("-");
+            for (int i = 0; i < emojis.length; i++) {
+                int emoji = Integer.parseInt(emojis[i]);
+                emojiSb.append((char) emoji);
+                if (i < emojis.length - 1) {
+                    sb.append(emoji).append("\\-");
+                } else {
+                    sb.append(emoji).append("\\]");
+                }
+            }
+            temp = temp.replaceAll(sb.toString(), emojiSb.toString());
+        }
+        return temp;
+    }
+
+    /**
+     * 涓嬪垝绾胯浆椹煎嘲
+     */
+    public static JSONObject lineToHump(JSONObject json) {
+        Pattern linePattern = Pattern.compile("_(\\w)");
+        JSONObject newJson = new JSONObject();
+        String value = "";
+        for (String str : json.keySet()) {
+            str = str.toLowerCase();
+            Matcher matcher = linePattern.matcher(str);
+            StringBuffer sb = new StringBuffer();
+            while (matcher.find()) {
+                matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
+            }
+            matcher.appendTail(sb);
+            value = json.getString(str);
+            if (StringUtil.isEmpty(value)) {
+                newJson.put(sb.toString(), json.getString(str));
+                newJson.put(str, json.getString(str));
+                continue;
+            }
+            if (value.startsWith("'")) {
+                value = value.replace("'", "");
+            }
+
+            if (value.endsWith("'")) {
+                value = value.substring(0, value.length() - 1);
+            }
+
+            newJson.put(sb.toString(), value);
+            newJson.put(str, value);
+
+        }
+
+        return newJson;
+    }
+
+    public static void main(String[] args) {
+        String value = "'123'";
+        if (value.startsWith("'")) {
+            value = value.replace("'", "");
+        }
+
+        if (value.endsWith("'")) {
+            value = value.substring(0, value.length() - 1);
+        }
+        System.out.printf(value);
+    }
+
+    /**
+     * 涓嬪垝绾胯浆椹煎嘲
+     */
+    public static String lineToHump(String str) {
+        Pattern linePattern = Pattern.compile("_(\\w)");
+        str = str.toLowerCase();
+        Matcher matcher = linePattern.matcher(str);
+        StringBuffer sb = new StringBuffer();
+        while (matcher.find()) {
+            matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
+        }
+        matcher.appendTail(sb);
+        return sb.toString();
+    }
+
+    /**
+     * 瀵逛汉鍚嶈繘琛岃劚鏁忓鐞嗭紝鍙樉绀哄鍜屽悕瀛楃殑鏈�鍚庝竴涓瓧
+     *
+     * @param name 鍘熷浜哄悕
+     * @return 鑴辨晱鍚庝汉鍚嶇殑瀛楃涓�
+     */
+    public static String maskName(String name) {
+        if (name == null || name.isEmpty()) {
+            return name;
+        }
+        String[] parts = name.split("");
+
+        if(parts.length <= 2){
+            return parts[0]+"*";
+        }
+
+        return parts[0]+"*" + parts[parts.length-1];
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.8.0