From cdbaf79d124d46b69dc62b653fde55f9d40b5534 Mon Sep 17 00:00:00 2001
From: 陈奇 <1650699704@qq.com>
Date: Thu, 01 Nov 2018 17:23:32 +0800
Subject: [PATCH] [*]修改电磁版本

---
 andbrickslib/src/main/java/com/moral/andbrickslib/utils/StringUtils.java |  695 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 371 insertions(+), 324 deletions(-)

diff --git a/andbrickslib/src/main/java/com/moral/andbrickslib/utils/StringUtils.java b/andbrickslib/src/main/java/com/moral/andbrickslib/utils/StringUtils.java
index 538050f..d541ff0 100644
--- a/andbrickslib/src/main/java/com/moral/andbrickslib/utils/StringUtils.java
+++ b/andbrickslib/src/main/java/com/moral/andbrickslib/utils/StringUtils.java
@@ -13,261 +13,260 @@
 
 /**
  * ������������������
- * 
+ *
  * @author Administrator
- * 
  */
 public class StringUtils {
-	private static final int MAX_PASSWORD_LENGTH = 16;
-	private static final int MIN_PASSWORD_LENGTH = 6;
+    private static final int MAX_PASSWORD_LENGTH = 16;
+    private static final int MIN_PASSWORD_LENGTH = 6;
 
-	public static final String URL_REG_EXPRESSION = "^(https?://)?([a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+)+(/*[A-Za-z0-9/\\-_&:?\\+=//.%]*)*";
+    public static final String URL_REG_EXPRESSION = "^(https?://)?([a-zA-Z0-9_-]+\\.[a-zA-Z0-9_-]+)+(/*[A-Za-z0-9/\\-_&:?\\+=//.%]*)*";
 
-	/**
-	 * is null or its length is 0 or it is made by space
-	 *
-	 * <pre>
-	 * isBlank(null) = true;
-	 * isBlank(&quot;&quot;) = true;
-	 * isBlank(&quot;  &quot;) = true;
-	 * isBlank(&quot;a&quot;) = false;
-	 * isBlank(&quot;a &quot;) = false;
-	 * isBlank(&quot; a&quot;) = false;
-	 * isBlank(&quot;a b&quot;) = false;
-	 * </pre>
-	 *
-	 * @param str
-	 * @return if string is null or its size is 0 or it is made by space, return true, else return false.
-	 */
-	public static boolean isBlank(String str) {
-		return (str == null || str.trim().length() == 0);
-	}
+    /**
+     * is null or its length is 0 or it is made by space
+     *
+     * <pre>
+     * isBlank(null) = true;
+     * isBlank(&quot;&quot;) = true;
+     * isBlank(&quot;  &quot;) = true;
+     * isBlank(&quot;a&quot;) = false;
+     * isBlank(&quot;a &quot;) = false;
+     * isBlank(&quot; a&quot;) = false;
+     * isBlank(&quot;a b&quot;) = false;
+     * </pre>
+     *
+     * @param str
+     * @return if string is null or its size is 0 or it is made by space, return true, else return false.
+     */
+    public static boolean isBlank(String str) {
+        return (str == null || str.trim().length() == 0);
+    }
 
-	/**
-	 * is null or its length is 0
-	 *
-	 * <pre>
-	 * isEmpty(null) = true;
-	 * isEmpty(&quot;&quot;) = true;
-	 * isEmpty(&quot;  &quot;) = false;
-	 * </pre>
-	 *
-	 * @param str
-	 * @return if string is null or its size is 0, return true, else return false.
-	 */
-	public static boolean isEmpty(String str) {
-		return (str == null || str.length() == 0) && isBlank(str);
-	}
+    /**
+     * is null or its length is 0
+     *
+     * <pre>
+     * isEmpty(null) = true;
+     * isEmpty(&quot;&quot;) = true;
+     * isEmpty(&quot;  &quot;) = false;
+     * </pre>
+     *
+     * @param str
+     * @return if string is null or its size is 0, return true, else return false.
+     */
+    public static boolean isEmpty(String str) {
+        return (str == null || str.length() == 0) && isBlank(str);
+    }
 
 
+    /**
+     * ������������
+     *
+     * @param mobileStr
+     * @param subStr
+     * @return
+     */
+    public static String replacePhoneStr(String mobileStr, String subStr) {
+        String resultStr = "";
+        if (resultStr != null) {
+            resultStr = mobileStr.substring(0, 3) + subStr
+                    + mobileStr.substring(7, 11);
+        }
+        return resultStr;
+    }
 
-	/**
-	 * ������������
-	 * 
-	 * @param mobileStr
-	 * @param subStr
-	 * @return
-	 */
-	public static String replacePhoneStr(String mobileStr, String subStr) {
-		String resultStr = "";
-		if (resultStr != null) {
-			resultStr = mobileStr.substring(0, 3) + subStr
-					+ mobileStr.substring(7, 11);
-		}
-		return resultStr;
-	}
+    /**
+     * ������UTF-8
+     *
+     * @param urlString
+     * @return
+     */
+    public static String decodeUTF8(String urlString) {
+        return decodeUrl(urlString.replaceAll("%", ""), "utf-8");
+    }
 
-	/**
-	 * ������UTF-8
-	 * @param urlString
-	 * @return
-	 */
-	public static String decodeUTF8(String urlString) {
-		return decodeUrl(urlString.replaceAll("%", ""), "utf-8");
-	}
-	public static String decodeUrl(String urlString, String decode) {
-		String decodeStr = "";
-		if (urlString != null) {
-			try {
-				decodeStr = URLDecoder.decode(urlString, decode);
-			} catch (UnsupportedEncodingException e) {
-			}
-		}
-		return decodeStr;
-	}
+    public static String decodeUrl(String urlString, String decode) {
+        String decodeStr = "";
+        if (urlString != null) {
+            try {
+                decodeStr = URLDecoder.decode(urlString, decode);
+            } catch (UnsupportedEncodingException e) {
+            }
+        }
+        return decodeStr;
+    }
 
-	/**
-	 * ������UTF-8
-	 * @param str
-	 * @return
-	 */
-	public static String utf8Encode(String str) {
-		if (!isEmpty(str) && str.getBytes().length != str.length()) {
-			try {
-				return URLEncoder.encode(str, "UTF-8");
-			} catch (UnsupportedEncodingException e) {
-				throw new RuntimeException("UnsupportedEncodingException occurred. ", e);
-			}
-		}
-		return str;
-	}
+    /**
+     * ������UTF-8
+     *
+     * @param str
+     * @return
+     */
+    public static String utf8Encode(String str) {
+        if (!isEmpty(str) && str.getBytes().length != str.length()) {
+            try {
+                return URLEncoder.encode(str, "UTF-8");
+            } catch (UnsupportedEncodingException e) {
+                throw new RuntimeException("UnsupportedEncodingException occurred. ", e);
+            }
+        }
+        return str;
+    }
 
-	/**
-	 * ������������������������������
-	 * 
-	 * @param string
-	 * @return
-	 */
-	public static boolean isValidPassword(String string) {
-		boolean isValid = true;
-		if (string != null && !"".equals(string)) {
-			if (string.length() >= MIN_PASSWORD_LENGTH
-					&& string.length() <= MAX_PASSWORD_LENGTH) {
-				int length = string.length();
-				for (int i = 0; i < length; i++) {
-					int a = string.charAt(i);
-					if (a >= 32 && a <= 126) {
-						// do nothing
-					} else {
-						isValid = false;
-					}
-				}
-			} else {
-				isValid = false;
-			}
-		} else {
-			isValid = false;
-		}
-		return isValid;
-	}
+    /**
+     * ������������������������������
+     *
+     * @param string
+     * @return
+     */
+    public static boolean isValidPassword(String string) {
+        boolean isValid = true;
+        if (string != null && !"".equals(string)) {
+            if (string.length() >= MIN_PASSWORD_LENGTH
+                    && string.length() <= MAX_PASSWORD_LENGTH) {
+                int length = string.length();
+                for (int i = 0; i < length; i++) {
+                    int a = string.charAt(i);
+                    if (a >= 32 && a <= 126) {
+                        // do nothing
+                    } else {
+                        isValid = false;
+                    }
+                }
+            } else {
+                isValid = false;
+            }
+        } else {
+            isValid = false;
+        }
+        return isValid;
+    }
 
-	/**
-	 * ������������������������������
-	 * 
-	 * @param address
-	 *            ������������
-	 * 
-	 * @return ������
-	 */
-	public static boolean isEmailAddressLegal(String address) {
-		if (address
-				.matches("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*")) {
-			return true;
-		}
-		return false;
-	}
+    /**
+     * ������������������������������
+     *
+     * @param address ������������
+     * @return ������
+     */
+    public static boolean isEmailAddressLegal(String address) {
+        if (address
+                .matches("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*")) {
+            return true;
+        }
+        return false;
+    }
 
-	/**
-	 * ������������������������������.
-	 * 
-	 * @param str
-	 *            ������������������������������
-	 * @return ���������������������������������true���������false
-	 */
-	public static Boolean isMobilePhone(String str) {
-		Boolean isMobileNo = false;
-		try {
-			Pattern p = Pattern
-					.compile("^[1][0-9][0-9]{9}$");
-			Matcher m = p.matcher(str);
-			isMobileNo = m.matches();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return isMobileNo;
-	}
+    /**
+     * ������������������������������.
+     *
+     * @param str ������������������������������
+     * @return ���������������������������������true���������false
+     */
+    public static Boolean isMobilePhone(String str) {
+        Boolean isMobileNo = false;
+        try {
+            Pattern p = Pattern
+                    .compile("^[1][0-9][0-9]{9}$");
+            Matcher m = p.matcher(str);
+            isMobileNo = m.matches();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return isMobileNo;
+    }
 
-	/**
-	 * ������������������������������
-	 * 
-	 * @param account
-	 * @return 0 success, other error 1 for length error 2 context error 3
-	 */
-	public static byte isValidAccount(String account) {
-		byte _bReturnValue = 0;
-		String chinese = "[\u0391-\uFFE5]";
-		String expr = "^[A-Za-z0-9_]+$";
-		do {
-			if (account.length() < 2 || account.length() > 18) {
-				_bReturnValue = 1;
-				break;
-			}
-			// ������������
-			String temp = "";
-			for (int i = 0; i < account.length(); i++) {
-				// ������������������
-				temp = account.substring(i, i + 1);
-				// ���������������������
-				if (temp.matches(chinese))
-					continue;
-				// ��������������������� ���������������������
-				if (temp.matches(expr))
-					continue;
+    /**
+     * ������������������������������
+     *
+     * @param account
+     * @return 0 success, other error 1 for length error 2 context error 3
+     */
+    public static byte isValidAccount(String account) {
+        byte _bReturnValue = 0;
+        String chinese = "[\u0391-\uFFE5]";
+        String expr = "^[A-Za-z0-9_]+$";
+        do {
+            if (account.length() < 2 || account.length() > 18) {
+                _bReturnValue = 1;
+                break;
+            }
+            // ������������
+            String temp = "";
+            for (int i = 0; i < account.length(); i++) {
+                // ������������������
+                temp = account.substring(i, i + 1);
+                // ���������������������
+                if (temp.matches(chinese))
+                    continue;
+                // ��������������������� ���������������������
+                if (temp.matches(expr))
+                    continue;
 
-				_bReturnValue = 2;
+                _bReturnValue = 2;
 
-				return _bReturnValue;
-			}
-		} while (false);
+                return _bReturnValue;
+            }
+        } while (false);
 
-		return _bReturnValue;
-	}
+        return _bReturnValue;
+    }
 
-	/**
-	 * ������������������
-	 * 
-	 * @param fileS
-	 * @return
-	 */
-	public static String FormetFileSize(long fileS) {// ������������������
-		DecimalFormat df = new DecimalFormat("#0.0");
-		String fileSizeString = "";
-		if (fileS < 1024) {
-			fileSizeString = df.format((double) fileS) + "B";
-		} else if (fileS < 1048576) {
-			fileSizeString = df.format((double) fileS / 1024) + "K";
-		} else if (fileS < 1073741824) {
-			fileSizeString = df.format((double) fileS / 1048576) + "M";
-		} else {
-			fileSizeString = df.format((double) fileS / 1073741824) + "G";
-		}
-		return fileSizeString;
-	}
+    /**
+     * ������������������
+     *
+     * @param fileS
+     * @return
+     */
+    public static String FormetFileSize(long fileS) {// ������������������
+        DecimalFormat df = new DecimalFormat("#0.0");
+        String fileSizeString = "";
+        if (fileS < 1024) {
+            fileSizeString = df.format((double) fileS) + "B";
+        } else if (fileS < 1048576) {
+            fileSizeString = df.format((double) fileS / 1024) + "K";
+        } else if (fileS < 1073741824) {
+            fileSizeString = df.format((double) fileS / 1048576) + "M";
+        } else {
+            fileSizeString = df.format((double) fileS / 1073741824) + "G";
+        }
+        return fileSizeString;
+    }
 
-	/**
-	 * ���������������������
-	 * @param f
-	 * @return
-	 * @throws Exception
-	 */
-	public static long getFileSize(File f) throws Exception// ���������������������
-	{
-		long size = 0;
-		File flist[] = f.listFiles();
-		for (int i = 0; i < flist.length; i++) {
-			if (flist[i].isDirectory()) {
-				size = size + getFileSize(flist[i]);
-			} else {
-				size = size + flist[i].length();
-			}
-		}
-		return size;
-	}
+    /**
+     * ���������������������
+     *
+     * @param f
+     * @return
+     * @throws Exception
+     */
+    public static long getFileSize(File f) throws Exception// ���������������������
+    {
+        long size = 0;
+        File flist[] = f.listFiles();
+        for (int i = 0; i < flist.length; i++) {
+            if (flist[i].isDirectory()) {
+                size = size + getFileSize(flist[i]);
+            } else {
+                size = size + flist[i].length();
+            }
+        }
+        return size;
+    }
 
-	/**
-	 * ���������������url
-	 * 
-	 * @param s
-	 * @return
-	 */
-	public static boolean isUrl(String s) {
-		if (s == null) {
-			return false;
-		}
-		return Pattern.matches(URL_REG_EXPRESSION, s);
-	}
-	
-	public static String getIMSI(Context context) {
+    /**
+     * ���������������url
+     *
+     * @param s
+     * @return
+     */
+    public static boolean isUrl(String s) {
+        if (s == null) {
+            return false;
+        }
+        return Pattern.matches(URL_REG_EXPRESSION, s);
+    }
+
+    public static String getIMSI(Context context) {
         try {
             if (context == null) {
                 return "";
@@ -295,11 +294,13 @@
 
         return "";
     }
-	/**
-	 * ���������������������
-	 * @param context
-	 * @return
-	 */
+
+    /**
+     * ���������������������
+     *
+     * @param context
+     * @return
+     */
     public static String getDeviceId(Context context) {
         try {
             String strIMEI = getIMEI(context);
@@ -317,95 +318,141 @@
         return "";
     }
 
-	/**
-	 * ���������������
-	 * @param bodyHTML
-	 * @return
-	 */
-	public static String getHtmlData(String bodyHTML) {
-		String head = "<head>"
-		+ "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> "
-		+ "<style>img{max-width: 100%; width:auto; height:auto;}</style>"
-		+ "</head>";
-		return "<html>" + head + "<body>" + bodyHTML + "</body></html>";
-		}
+    /**
+     * ���������������
+     *
+     * @param bodyHTML
+     * @return
+     */
+    public static String getHtmlData(String bodyHTML) {
+        String head = "<head>"
+                + "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\"> "
+                + "<style>img{max-width: 100%; width:auto; height:auto;}</style>"
+                + "</head>";
+        return "<html>" + head + "<body>" + bodyHTML + "</body></html>";
+    }
 
-	/**
-	 * html���String
-	 * @param source
-	 * @return
-	 */
-	public static String htmlEscapeCharsToString(String source) {
-		return isEmpty(source) ? source : source.replaceAll("&lt;", "<").replaceAll("&gt;", ">")
-				.replaceAll("&amp;", "&").replaceAll("&quot;", "\"");
-	}
+    /**
+     * html���String
+     *
+     * @param source
+     * @return
+     */
+    public static String htmlEscapeCharsToString(String source) {
+        return isEmpty(source) ? source : source.replaceAll("&lt;", "<").replaceAll("&gt;", ">")
+                .replaceAll("&amp;", "&").replaceAll("&quot;", "\"");
+    }
 
-	/**
-	 * ���������ASCII��������������������������� ������"EF"���> 0xEF
-	 *
-	 * @param src0
-	 *            byte
-	 * @param src1
-	 *            byte
-	 * @return byte
-	 */
-	public static byte uniteBytes(byte src0, byte src1) {
-		byte _b0 = Byte.decode("0x" + new String(new byte[] {src0})).byteValue();
-		_b0 = (byte) (_b0 << 4);
-		byte _b1 = Byte.decode("0x" + new String(new byte[] { src1 })).byteValue();
-		byte ret = (byte) (_b0 ^ _b1);
-		return ret;
-	}
+    /**
+     * ���������ASCII��������������������������� ������"EF"���> 0xEF
+     *
+     * @param src0 byte
+     * @param src1 byte
+     * @return byte
+     */
+    public static byte uniteBytes(byte src0, byte src1) {
+        byte _b0 = Byte.decode("0x" + new String(new byte[]{src0})).byteValue();
+        _b0 = (byte) (_b0 << 4);
+        byte _b1 = Byte.decode("0x" + new String(new byte[]{src1})).byteValue();
+        byte ret = (byte) (_b0 ^ _b1);
+        return ret;
+    }
 
-	/**
-	 * ������������������src������������������������������������16������������ ������"2B44EFD9" ���> byte[]{0x2B, 0��44, 0xEF,
-	 * 0xD9}
-	 *
-	 * @param src
-	 *            String
-	 * @return byte[]
-	 */
-	public static byte[] HexString2Bytes(String src) {
-		if (null == src || 0 == src.length()) {
-			return null;
-		}
-		byte[] ret = new byte[src.length() / 2];
-		byte[] tmp = src.getBytes();
-		for (int i = 0; i < (tmp.length / 2); i++) {
-			ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]);
-		}
-		return ret;
-	}
-	public static String byteArrayToHexStr(byte[] byteArray) {
-		if (byteArray == null){
-			return null;
-		}
-		char[] hexArray = "0123456789ABCDEF".toCharArray();
-		char[] hexChars = new char[byteArray.length * 2];
-		for (int j = 0; j < byteArray.length; j++) {
-			int v = byteArray[j] & 0xFF;
-			hexChars[j * 2] = hexArray[v >>> 4];
-			hexChars[j * 2 + 1] = hexArray[v & 0x0F];
-		}
-		return new String(hexChars);
-	}
+    /**
+     * ������������������src������������������������������������16������������ ������"2B44EFD9" ���> byte[]{0x2B, 0��44, 0xEF,
+     * 0xD9}
+     *
+     * @param src String
+     * @return byte[]
+     */
+    public static byte[] HexString2Bytes(String src) {
+        if (null == src || 0 == src.length()) {
+            return null;
+        }
+        byte[] ret = new byte[src.length() / 2];
+        byte[] tmp = src.getBytes();
+        for (int i = 0; i < (tmp.length / 2); i++) {
+            ret[i] = uniteBytes(tmp[i * 2], tmp[i * 2 + 1]);
+        }
+        return ret;
+    }
 
-	public static String str2HexStr(String str)
-	{
+    public static String byteArrayToHexStr(byte[] byteArray) {
+        if (byteArray == null) {
+            return null;
+        }
+        char[] hexArray = "0123456789ABCDEF".toCharArray();
+        char[] hexChars = new char[byteArray.length * 2];
+        for (int j = 0; j < byteArray.length; j++) {
+            int v = byteArray[j] & 0xFF;
+            hexChars[j * 2] = hexArray[v >>> 4];
+            hexChars[j * 2 + 1] = hexArray[v & 0x0F];
+        }
+        return new String(hexChars);
+    }
 
-		char[] chars = "0123456789ABCDEF".toCharArray();
-		StringBuilder sb = new StringBuilder("");
-		byte[] bs = str.getBytes();
-		int bit;
+    public static String dumpHex(byte[] src) {
+        String num = "0123456789ABCDEF";
+        StringBuilder sb = new StringBuilder();
+//		sb.append("[ ");
+        for (byte aSrc : src) {
+            int high = aSrc >> 4 & 0x0f;
+            int low = aSrc & 0x0f;
+            sb.append(num.charAt(high)).append(num.charAt(low)).append(" ");
+        }
+//		sb.append(" ]");
+        return sb.toString();
+    }
 
-		for (int i = 0; i < bs.length; i++)
-		{
-			bit = (bs[i] & 0x0f0) >> 4;
-			sb.append(chars[bit]);
-			bit = bs[i] & 0x0f;
-			sb.append(chars[bit]);
-			sb.append(' ');
-		}
-		return sb.toString().trim();
-	}
+    public static String str2HexStr(String str) {
+
+        char[] chars = "0123456789ABCDEF".toCharArray();
+        StringBuilder sb = new StringBuilder("");
+        byte[] bs = str.getBytes();
+        int bit;
+
+        for (int i = 0; i < bs.length; i++) {
+            bit = (bs[i] & 0x0f0) >> 4;
+            sb.append(chars[bit]);
+            bit = bs[i] & 0x0f;
+            sb.append(chars[bit]);
+            sb.append(' ');
+        }
+        return sb.toString().trim();
+    }
+
+    /**
+     * ���������������������������
+     *
+     * @param msg
+     * @param split
+     * @return
+     */
+    public static String[] splitString(String msg, int split) {
+        msg = msg.replace(" ", "");
+        String[] strings = new String[msg.length() / split];
+        int j = 0;
+        for (int i = 0; i < msg.length(); i++) {
+            if (i % split == 1) {
+                strings[j++] = msg.substring(i - (split - 1), i + 1);
+            }
+        }
+        return strings;
+    }
+
+    /**
+     * ���������������������
+     *
+     * @param strings
+     * @param start
+     * @param end
+     * @return
+     */
+    public static String subStrings(String[] strings, int start, int end) {
+        StringBuffer buffer = new StringBuffer();
+        for (int i = start; i <= end; i++) {
+            buffer.append(strings[i]);
+        }
+        return buffer.toString();
+    }
 }

--
Gitblit v1.8.0