package com.pan.simplepicture.utils; import android.util.Base64; import android.util.Patterns; import java.text.DecimalFormat; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringUtils { public static String timeFormatter(String mm) { float f = Float.parseFloat(mm); DecimalFormat df = new DecimalFormat("00.00"); return df.format(f / 60); } public static String stringFormatter(int count) { if (count % 10000 < 100) { return String.valueOf(count / 10000) + "万次"; } else { return String.format("%.2f", count / 10000d) + "万次"; } } public static String timeFormatter(int mm) { DecimalFormat df; if (mm / 60 > 100) { df = new DecimalFormat("000.00"); } else { df = new DecimalFormat("00.00"); } return df.format(mm / 60); } /** * yyyyMMddHHmmss * * @param time * @return */ public static String dayFormatter(String time) { long xTime = new Date().getTime() - Long.parseLong(time); // 秒 if ((xTime = xTime / 1000) < 60) { return "刚刚"; } // 分 if ((xTime = xTime / 60) < 60) { return xTime + "分钟前"; } // 小时 if ((xTime = xTime / 60) < 24) { return xTime + "小时前"; } // 天 if ((xTime = xTime / 24) < 7) { return xTime + "天前"; } if (xTime < 30 && xTime >= 7) { return xTime / 7 + "周前"; } // 月 if (xTime >= 30 && xTime < 365) { return xTime / 30 + "月前"; } if (xTime >= 365) { return xTime / 365 + "年前"; } return ""; } public static String formatFileSize(long len) { return formatFileSize(len, false); } public static String formatFileSize(long len, boolean keepZero) { String size; DecimalFormat formatKeepTwoZero = new DecimalFormat("#.00"); DecimalFormat formatKeepOneZero = new DecimalFormat("#.0"); if (len < 1024) { size = String.valueOf(len + "B"); } else if (len < 10 * 1024) { // [0, 10KB),保留两位小数 size = String.valueOf(len * 100 / 1024 / (float) 100) + "KB"; } else if (len < 100 * 1024) { // [10KB, 100KB),保留一位小数 size = String.valueOf(len * 10 / 1024 / (float) 10) + "KB"; } else if (len < 1024 * 1024) { // [100KB, 1MB),个位四舍五入 size = String.valueOf(len / 1024) + "KB"; } else if (len < 10 * 1024 * 1024) { // [1MB, 10MB),保留两位小数 if (keepZero) { size = String.valueOf(formatKeepTwoZero.format(len * 100 / 1024 / 1024 / (float) 100)) + "MB"; } else { size = String.valueOf(len * 100 / 1024 / 1024 / (float) 100) + "MB"; } } else if (len < 100 * 1024 * 1024) { // [10MB, 100MB),保留一位小数 if (keepZero) { size = String.valueOf(formatKeepOneZero.format(len * 10 / 1024 / 1024 / (float) 10)) + "MB"; } else { size = String.valueOf(len * 10 / 1024 / 1024 / (float) 10) + "MB"; } } else if (len < 1024 * 1024 * 1024) { // [100MB, 1GB),个位四舍五入 size = String.valueOf(len / 1024 / 1024) + "MB"; } else { // [1GB, ...),保留两位小数 size = String.valueOf(len * 100 / 1024 / 1024 / 1024 / (float) 100) + "GB"; } return size; } public static String getRealUrl(String s) { //(\\d+)为分组 try { s = decryptFlvcd(s); return s.substring(s.indexOf("<U><![CDATA[")+12, s.indexOf("]]></U>")); } catch (Exception e) { return ""; } } private static String decryptFlvcd(String paramString) throws Exception { char[] arrayOfChar = paramString.toCharArray(); int i = paramString.length(); byte[] arrayOfByte = new byte[i >> 1]; int j = 0; int k = 0; while (true) { if (k >= i) return new String( Base64.decode(transformFlvcd(arrayOfByte), 0), "utf-8"); int m = Character.digit(arrayOfChar[k], 16) << 4; int n = k + 1; int i1 = m | Character.digit(arrayOfChar[n], 16); k = n + 1; arrayOfByte[j] = (byte) (i1 & 0xFF); j++; } } private static byte[] transformFlvcd(byte[] paramArrayOfByte) throws Exception { byte[] arrayOfByte1 = new byte[256]; arrayOfByte1[0] = 63; arrayOfByte1[1] = 121; arrayOfByte1[2] = -44; arrayOfByte1[3] = 54; arrayOfByte1[4] = 86; arrayOfByte1[5] = -68; arrayOfByte1[6] = 114; arrayOfByte1[7] = 15; arrayOfByte1[8] = 108; arrayOfByte1[9] = 94; arrayOfByte1[10] = 77; arrayOfByte1[11] = -15; arrayOfByte1[12] = 89; arrayOfByte1[13] = 46; arrayOfByte1[14] = -81; arrayOfByte1[15] = 4; arrayOfByte1[16] = -114; arrayOfByte1[17] = 69; arrayOfByte1[18] = -88; arrayOfByte1[19] = -79; arrayOfByte1[20] = -26; arrayOfByte1[21] = 91; arrayOfByte1[22] = 50; arrayOfByte1[23] = -19; arrayOfByte1[24] = -37; arrayOfByte1[25] = 38; arrayOfByte1[26] = 27; arrayOfByte1[27] = -80; arrayOfByte1[28] = 7; arrayOfByte1[29] = 32; arrayOfByte1[30] = -64; arrayOfByte1[31] = 127; arrayOfByte1[32] = -41; arrayOfByte1[33] = 27; arrayOfByte1[34] = -49; arrayOfByte1[35] = -89; arrayOfByte1[36] = 3; arrayOfByte1[37] = 42; arrayOfByte1[38] = 52; arrayOfByte1[39] = 29; arrayOfByte1[40] = 86; arrayOfByte1[41] = 122; arrayOfByte1[42] = 6; arrayOfByte1[43] = -35; arrayOfByte1[44] = -110; arrayOfByte1[45] = -1; arrayOfByte1[46] = -57; arrayOfByte1[47] = 41; arrayOfByte1[48] = 52; arrayOfByte1[49] = -13; arrayOfByte1[50] = -73; arrayOfByte1[51] = 10; arrayOfByte1[52] = 48; arrayOfByte1[53] = 49; arrayOfByte1[54] = 92; arrayOfByte1[55] = 117; arrayOfByte1[56] = 67; arrayOfByte1[57] = 72; arrayOfByte1[58] = 45; arrayOfByte1[59] = 121; arrayOfByte1[60] = 93; arrayOfByte1[61] = -63; arrayOfByte1[62] = 101; arrayOfByte1[63] = -90; arrayOfByte1[64] = 73; arrayOfByte1[65] = 108; arrayOfByte1[66] = -29; arrayOfByte1[67] = -91; arrayOfByte1[68] = 7; arrayOfByte1[69] = 46; arrayOfByte1[70] = -110; arrayOfByte1[71] = 85; arrayOfByte1[73] = 81; arrayOfByte1[74] = 67; arrayOfByte1[75] = 83; arrayOfByte1[76] = 113; arrayOfByte1[77] = 67; arrayOfByte1[78] = 9; arrayOfByte1[79] = -57; arrayOfByte1[80] = 116; arrayOfByte1[81] = -102; arrayOfByte1[82] = -26; arrayOfByte1[83] = 15; arrayOfByte1[84] = 92; arrayOfByte1[85] = -14; arrayOfByte1[86] = -91; arrayOfByte1[87] = 90; arrayOfByte1[88] = 56; arrayOfByte1[89] = -76; arrayOfByte1[90] = 18; arrayOfByte1[91] = 1; arrayOfByte1[92] = 57; arrayOfByte1[93] = 95; arrayOfByte1[94] = -1; arrayOfByte1[95] = 83; arrayOfByte1[96] = 67; arrayOfByte1[97] = -84; arrayOfByte1[98] = 52; arrayOfByte1[99] = 117; arrayOfByte1[100] = -93; arrayOfByte1[101] = 86; arrayOfByte1[102] = 116; arrayOfByte1[103] = -58; arrayOfByte1[104] = 120; arrayOfByte1[105] = -112; arrayOfByte1[106] = 70; arrayOfByte1[107] = -88; arrayOfByte1[108] = -123; arrayOfByte1[109] = -45; arrayOfByte1[110] = -122; arrayOfByte1[111] = 10; arrayOfByte1[112] = 38; arrayOfByte1[113] = 39; arrayOfByte1[114] = -10; arrayOfByte1[115] = -60; arrayOfByte1[116] = -114; arrayOfByte1[117] = 93; arrayOfByte1[118] = 31; arrayOfByte1[119] = 25; arrayOfByte1[120] = 1; arrayOfByte1[121] = -120; arrayOfByte1[122] = -121; arrayOfByte1[123] = -66; arrayOfByte1[124] = -40; arrayOfByte1[125] = 74; arrayOfByte1[126] = -69; arrayOfByte1[127] = 83; arrayOfByte1['€'] = 101; arrayOfByte1[''] = -86; arrayOfByte1['‚'] = 107; arrayOfByte1['ƒ'] = 121; arrayOfByte1['„'] = -6; arrayOfByte1['…'] = 109; arrayOfByte1['†'] = 50; arrayOfByte1['‡'] = 111; arrayOfByte1['ˆ'] = -33; arrayOfByte1['‰'] = 62; arrayOfByte1['Š'] = 27; arrayOfByte1['‹'] = -63; arrayOfByte1['Œ'] = -33; arrayOfByte1[''] = 1; arrayOfByte1['Ž'] = 52; arrayOfByte1[''] = 81; arrayOfByte1[''] = 83; arrayOfByte1['‘'] = 109; arrayOfByte1['’'] = -59; arrayOfByte1['“'] = 122; arrayOfByte1['”'] = 11; arrayOfByte1['•'] = -57; arrayOfByte1['–'] = -75; arrayOfByte1['—'] = 34; arrayOfByte1['˜'] = 58; arrayOfByte1['™'] = 38; arrayOfByte1['š'] = -75; arrayOfByte1['›'] = -115; arrayOfByte1['œ'] = 62; arrayOfByte1[''] = -46; arrayOfByte1['ž'] = 7; arrayOfByte1['Ÿ'] = -114; arrayOfByte1[' '] = -60; arrayOfByte1['¡'] = -20; arrayOfByte1['¢'] = 55; arrayOfByte1['£'] = 4; arrayOfByte1['¤'] = -107; arrayOfByte1['¥'] = -110; arrayOfByte1['¦'] = -62; arrayOfByte1['§'] = 103; arrayOfByte1['¨'] = -21; arrayOfByte1['©'] = 40; arrayOfByte1['ª'] = 56; arrayOfByte1['«'] = -62; arrayOfByte1['¬'] = -110; arrayOfByte1['­'] = -91; arrayOfByte1['®'] = -64; arrayOfByte1['¯'] = 53; arrayOfByte1['°'] = -69; arrayOfByte1['±'] = 123; arrayOfByte1['²'] = -87; arrayOfByte1['³'] = 66; arrayOfByte1['´'] = -67; arrayOfByte1['µ'] = 57; arrayOfByte1['¶'] = 91; arrayOfByte1['·'] = 74; arrayOfByte1['¸'] = 82; arrayOfByte1['¹'] = 13; arrayOfByte1['º'] = 14; arrayOfByte1['»'] = 109; arrayOfByte1['¼'] = -77; arrayOfByte1['½'] = -108; arrayOfByte1['¾'] = -28; arrayOfByte1['¿'] = -78; arrayOfByte1['À'] = 103; arrayOfByte1['Á'] = -85; arrayOfByte1['Â'] = -37; arrayOfByte1['Ã'] = -47; arrayOfByte1['Ä'] = -33; arrayOfByte1['Å'] = -33; arrayOfByte1['Æ'] = 97; arrayOfByte1['Ç'] = -103; arrayOfByte1['È'] = 102; arrayOfByte1['É'] = -96; arrayOfByte1['Ê'] = -78; arrayOfByte1['Ë'] = -116; arrayOfByte1['Ì'] = 57; arrayOfByte1['Í'] = 55; arrayOfByte1['Î'] = 91; arrayOfByte1['Ï'] = 20; arrayOfByte1['Ð'] = 80; arrayOfByte1['Ñ'] = -66; arrayOfByte1['Ò'] = -82; arrayOfByte1['Ó'] = -77; arrayOfByte1['Ô'] = -78; arrayOfByte1['Õ'] = 39; arrayOfByte1['Ö'] = -63; arrayOfByte1['×'] = 19; arrayOfByte1['Ø'] = 12; arrayOfByte1['Ù'] = -2; arrayOfByte1['Ú'] = 93; arrayOfByte1['Û'] = -32; arrayOfByte1['Ü'] = 65; arrayOfByte1['Ý'] = -25; arrayOfByte1['Þ'] = 89; arrayOfByte1['ß'] = 104; arrayOfByte1['à'] = -51; arrayOfByte1['á'] = -102; arrayOfByte1['â'] = 76; arrayOfByte1['ã'] = -68; arrayOfByte1['ä'] = -86; arrayOfByte1['å'] = -90; arrayOfByte1['æ'] = 121; arrayOfByte1['ç'] = 39; arrayOfByte1['è'] = -83; arrayOfByte1['é'] = -118; arrayOfByte1['ê'] = -102; arrayOfByte1['ë'] = 110; arrayOfByte1['ì'] = 113; arrayOfByte1['í'] = -3; arrayOfByte1['î'] = -23; arrayOfByte1['ï'] = 52; arrayOfByte1['ð'] = -71; arrayOfByte1['ñ'] = -16; arrayOfByte1['ò'] = -21; arrayOfByte1['ó'] = 72; arrayOfByte1['ô'] = -99; arrayOfByte1['õ'] = -86; arrayOfByte1['ö'] = -120; arrayOfByte1['÷'] = -16; arrayOfByte1['ø'] = 2; arrayOfByte1['ù'] = 114; arrayOfByte1['ú'] = 72; arrayOfByte1['û'] = -50; arrayOfByte1['ü'] = 56; arrayOfByte1['ý'] = 73; arrayOfByte1['þ'] = -56; arrayOfByte1['ÿ'] = 117; byte[] arrayOfByte2 = new byte[paramArrayOfByte.length]; for (int i = 0; ; i++) { if (i >= paramArrayOfByte.length) return arrayOfByte2; arrayOfByte2[i] = (byte) (arrayOfByte1[(i % 256)] ^ paramArrayOfByte[i]); } } }