package com.bonus.core; import java.io.ByteArrayOutputStream; import java.text.DecimalFormat; import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringHelper { private static String hexString = "0123456789ABCDEF"; public static String replaceAll(String str, String oldStr, String newStr) { return str.replaceAll(oldStr, newStr); } public static boolean contains(String s1, String s2) { if (isEmpty(s1)) { return false; } return s1.contains(s2); } public static int getInt(String valStr) { return getInt(valStr, 0); } public static int getInt(String valStr, int defaulVal) { int val = 0; try { val = Integer.parseInt(valStr); } catch (Exception e) { val = defaulVal; } return val; } public static String nullPlaceholder(String str, String holderStr) { if (isEmpty(str)) { return holderStr; } return str; } public static String getShiroBtns(String str) { StringBuilder btnString = new StringBuilder(); if (isNotEmpty(str) && str.indexOf("Management") != -1) { Integer startIndex = str.lastIndexOf("/") + 1; Integer endIndex = str.indexOf("Management"); str = str.substring(startIndex, endIndex); String startStr1 = ""; String endStr = ""; // 增加按钮 btnString.append(startStr1 + str + ":add" + startStr2); btnString.append( ""); btnString.append(endStr); // 查看按钮 btnString.append(startStr1 + str + ":view" + startStr2); btnString.append( ""); btnString.append(endStr); // 修改按钮 btnString.append(startStr1 + str + ":edit" + startStr2); btnString.append( ""); btnString.append(endStr); // 删除按钮 btnString.append(startStr1 + str + ":del" + startStr2); btnString.append( ""); btnString.append(endStr); } return btnString.toString(); } public static Integer ceshi(Integer a, Integer b) { Integer res = 0; res = (int) Math.floor(a / b); return res; } public static float getFloat(String valStr) { return getFloat(valStr, 0); } public static float getFloat(String valStr, int defaulVal) { float val = 0; try { val = Float.parseFloat(valStr); } catch (Exception e) { val = defaulVal; } return val; } /* * 将字符串编码成16进制数字,适用于所有字符(包括中文) */ public static String encode(String str) { // 根据默认编码获取字节数组 byte[] bytes = str.getBytes(); StringBuilder sb = new StringBuilder(bytes.length * 2); // 将字节数组中每个字节拆解成2位16进制整数 for (int i = 0; i < bytes.length; i++) { sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4)); sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0)); } return sb.toString(); } public static String decode(String bytes) { ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2); // 将每2位16进制整数组装成一个字节 for (int i = 0; i < bytes.length(); i += 2) baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString.indexOf(bytes.charAt(i + 1)))); return new String(baos.toByteArray()); } public static String fillPrefixZero(int v, int len) { String vStr = v + ""; while (vStr.length() < len) { vStr = "0" + vStr; } return vStr; } public static boolean isEmpty(String str) { if (str == null || "".equals(str.trim()) || "undefined".equals(str.trim())) { return true; } return false; } /** * 判断字符串 不为空 */ public static boolean isNotEmpty(String str) { return !isEmpty(str); } /** * 处理时间,获取编号 */ public static String time2Code(String time) { if (isNotEmpty(time)) { time = time.replace("-", "").replace(" ", "").replace(":", ""); } return time; } public static String formatMoneyData(float temp) { DecimalFormat df = new DecimalFormat("#0.00");// 构造方法的字符格式这里如果小数不足2位,会以0补足. String tmp = df.format(temp); return tmp; } public static float formatMoney2Data(float temp) { String tmp = formatMoneyData(temp); float t = getFloat(tmp); return t; } public static String formatData(float temp) { DecimalFormat df = new DecimalFormat("#0.000");// 构造方法的字符格式这里如果小数不足2位,会以0补足. String tmp = df.format(temp); return tmp; } public static float format2Data(float temp) { String tmp = formatData(temp); float t = getFloat(tmp); return t; } /** * 检查是否存在数据飘逸 */ public static float disposeDrift(Float num) { String strNum = num.toString(); String endStr = strNum.substring(strNum.indexOf(".") + 1); String startStr = strNum.substring(0, strNum.indexOf(".")); if (endStr.indexOf("999") >= 0) { int start = endStr.indexOf("999"); if (start == 0) { num = Float.parseFloat(startStr) + 1f; } else { String a = "0"; String c = ""; while (endStr.startsWith(a)) { a += "0"; c += "0"; } endStr = endStr.substring(0, start); endStr = c + (Integer.parseInt(endStr) + 1) + ""; num = Float.parseFloat(startStr + "." + endStr); } } else if (endStr.indexOf("000") >= 0) { int start = endStr.indexOf("000"); if (start == 0) { num = Float.parseFloat(startStr); } else { num = Float.parseFloat(strNum.substring(0, strNum.indexOf("000"))); } } return num; } /** * java判断字符是否是全部由数字,小写字母,大写字母,特殊符号组成 正则表达式判断 * * @param arr */ public static void judgeA(String arr) { // TODO Auto-generated method stub String str1 = "abcdfjijgiaj"; String str2 = "0AOGVNDIJEIO"; String str3 = "12345465870"; String str4 = "@#$^^%^&*("; Pattern pattern1 = Pattern.compile("[a-z]*"); Pattern pattern2 = Pattern.compile("[A-Z]*"); Pattern pattern3 = Pattern.compile("[0-9]*"); Pattern pattern4 = Pattern.compile("\\p{Punct}+"); Matcher matcher1 = pattern1.matcher(str1); Matcher matcher2 = pattern2.matcher(str2); Matcher matcher3 = pattern3.matcher(str3); Matcher matcher4 = pattern4.matcher(str4); if (matcher1.matches()) { System.out.println("全是小写字母"); } else { System.out.println("不全是小写字母"); } if (matcher2.matches()) { System.out.println("全是大写字母"); } else { System.out.println("不全是大写字母"); } if (matcher3.matches()) { System.out.println("全是数字"); } else { System.out.println("不全是数字"); } if (matcher4.matches()) { System.out.println("全是特殊符号"); } else { System.out.println("不全是特殊符号"); } // 判断字符串是否全部由数字组成,java自带方法判断 boolean flag = true; for (int i = str3.length() - 1; i >= 0; i--) { if (!Character.isDigit(str3.charAt(i))) { flag = false; } } if (flag) { System.out.println(str3 + "全部是数字"); } } }