有意思的String字符工具类
对String的操作是Java攻城师必备的,一个优秀的攻城师是懒惰,他会把自己的一些常见的代码写成可提供拓展和复用的工具类或者工具库,这些是这些优秀工程师的法宝。
我就先从String这个基本操作开始吧,Android里有个TextUtils的类,没事点开也看看。
1 public class StringUtils { 2 3 4 private static final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式 5 private static final String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定义style的正则表达式 6 private static final String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式 7 private static final String regEx_space = "\\s*|\t|\r|\n";//定义空格回车换行符 8 9 /** 10 * @param htmlStr 11 * @return 12 * 删除Html标签 13 */ 14 public static String delHTMLTag(String htmlStr) { 15 Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE); 16 Matcher m_script = p_script.matcher(htmlStr); 17 htmlStr = m_script.replaceAll(""); // 过滤script标签 18 19 Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE); 20 Matcher m_style = p_style.matcher(htmlStr); 21 htmlStr = m_style.replaceAll(""); // 过滤style标签 22 23 Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE); 24 Matcher m_html = p_html.matcher(htmlStr); 25 htmlStr = m_html.replaceAll(""); // 过滤html标签 26 27 Pattern p_space = Pattern.compile(regEx_space, Pattern.CASE_INSENSITIVE); 28 Matcher m_space = p_space.matcher(htmlStr); 29 htmlStr = m_space.replaceAll(""); // 过滤空格回车标签 30 return htmlStr.trim(); // 返回文本字符串 31 } 32 33 34 public static String join(String[] strs, String split) { 35 if (strs == null || strs.length == 0) { 36 return ""; 37 } 38 StringBuffer sb = new StringBuffer(); 39 sb.append(strs[0]); 40 for (int i = 1; i < strs.length; i++) { 41 if (split != null) { 42 sb.append(split); 43 } 44 45 sb.append(strs[i]); 46 } 47 48 return sb.toString(); 49 } 50 51 public static String validString(String str) { 52 return TextUtils.isEmpty(str) ? "" : str; 53 } 54 55 public static String ToDBC(String input) { 56 if (null == input) { 57 return ""; 58 } 59 60 char[] c = input.toCharArray(); 61 for (int i = 0; i < c.length; i++) { 62 if (c[i] == 12288) { 63 c[i] = (char) 32; 64 continue; 65 } 66 if (c[i] > 65280 && c[i] < 65375) 67 c[i] = (char) (c[i] - 65248); 68 } 69 return new String(c); 70 } 71 72 73 /** 74 * 验证输入的邮箱格式是否符合 75 * 76 * @param email 77 * @return 是否合法 78 */ 79 public static boolean isEmail(String email) { 80 boolean tag = true; 81 final String pattern1 = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; 82 final Pattern pattern = Pattern.compile(pattern1); 83 final Matcher mat = pattern.matcher(email); 84 if (!mat.find()) { 85 tag = false; 86 } 87 return tag; 88 } 89 /** 90 * str -- >yyyy-MM-dd 91 * 92 * @param strDate 93 * @return 94 */ 95 @SuppressLint("SimpleDateFormat") 96 public static Date toDate(String strDate) { 97 Date date = null; 98 try { 99 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 100 date = sdf.parse(strDate); 101 } catch (ParseException e) { 102 System.out.println(e.getMessage()); 103 } 104 return date; 105 106 } 107 }
鸡蛋,从外打破是食物,从内打破是生命。
人亦如是:从外打破是压力,从内打破是成长。
如果你等别人从外打破你,那么你注定是要成为别人的食物;
若是你自己从内打破,那么你会发现自己获得重生。