一:spring框架util包中的StringUtils類主要是處理關於字符串
的功能方法,下面直接結合代碼分析:
//判斷字符串是否為空,如果為nul或者""則返回true,否則返回false public static boolean isEmpty(Object str) { return str == null || "".equals(str); }
//判斷字符串是否有長度,不等於null同時長度大於0,則為true //這里重載兩個hasLength方法,其中CharSequence是String的父類,是接口 public static boolean hasLength(CharSequence str) { return str != null && str.length() > 0; } public static boolean hasLength(String str) { return hasLength(((CharSequence) (str))); }
//如果為空則直接返回false,如果字符串中有一個不是空白,則表示 //有內容,返回true public static boolean hasText(CharSequence str) { if(!hasLength(str)) return false; int strLen = str.length(); //遍歷字符序列,如果其中有一個不是空白,則返回true for(int i = 0; i < strLen; i++) if(!Character.isWhitespace(str.charAt(i))) return true; return false; } public static boolean hasText(String str) { return hasText(((CharSequence) (str))); }
//判斷字符串是否包含空白,如果為空則直接返回false,,遍歷字符序列,如果其中 //有一個字符是空白,則返回true,如果都不是,返回false public static boolean containsWhitespace(CharSequence str) { if(!hasLength(str)) return false; int strLen = str.length(); for(int i = 0; i < strLen; i++) if(Character.isWhitespace(str.charAt(i))) return true; return false; } public static boolean containsWhitespace(String str) { return containsWhitespace(((CharSequence) (str))); }
//去除字符串前后的空白 public static String trimWhitespace(String str) { if(!hasLength(str)) return str; StringBuilder sb; //去除字符串前導空白 for(sb = new StringBuilder(str); sb.length() > 0 && Character.isWhitespace(sb.charAt(0)); sb.deleteCharAt(0)); //去除字符串后導空白 for(; sb.length() > 0 && Character.isWhitespace(sb.charAt(sb.length() - 1)); sb.deleteCharAt(sb.length() - 1)); return sb.toString(); }
//去除字符串所有空白 public static String trimAllWhitespace(String str) { if(!hasLength(str)) return str; StringBuilder sb = new StringBuilder(str); //從第一個字符開始判斷,是否為空白,如果是則刪除,如果不是則index加1 //判斷第二個,然后一直到sb.length=index,則跳出循環 for(int index = 0; sb.length() > index;) if(Character.isWhitespace(sb.charAt(index))) sb.deleteCharAt(index); else index++; return sb.toString(); }
//去除前導空白,只取空白的前一部分 public static String trimLeadingWhitespace(String str) { if(!hasLength(str)) return str; StringBuilder sb; //去除前導空白 for(sb = new StringBuilder(str); sb.length() > 0 && Character.isWhitespace(sb.charAt(0)); sb.deleteCharAt(0)); return sb.toString(); }
//去除后導空白,取去除空白后一部分 public static String trimTrailingWhitespace(String str) { if(!hasLength(str)) return str; StringBuilder sb; //去除后導空白 for(sb = new StringBuilder(str); sb.length() > 0 && Character.isWhitespace(sb.charAt(sb.length() - 1)); sb.deleteCharAt(sb.length() - 1)); return sb.toString(); }
//刪除前導為leadingCharacter的字符 public static String trimLeadingCharacter(String str, char leadingCharacter) { if(!hasLength(str)) return str; StringBuilder sb; //只要前導是指定字符則刪除 for(sb = new StringBuilder(str); sb.length() > 0 && sb.charAt(0) == leadingCharacter; sb.deleteCharAt(0)); return sb.toString(); }
//刪除后導字符trailingCharacter public static String trimTrailingCharacter(String str, char trailingCharacter) { if(!hasLength(str)) return str; StringBuilder sb; //只要后導是指定字符則刪除 for(sb = new StringBuilder(str); sb.length() > 0 && sb.charAt(sb.length() - 1) == trailingCharacter; sb.deleteCharAt(sb.length() - 1)); return sb.toString(); }
//忽略大小寫,判斷字符串是否已prefix開始 public static boolean startsWithIgnoreCase(String str, String prefix) { //如果源字符串str或者前綴字符串prefix為null,則返回false if(str == null || prefix == null) return false; //如果str以prefix開始,return true if(str.startsWith(prefix)) return true; //如果源字符串的長度小於prefix的長度,返回false if(str.length() < prefix.length()) { return false; } else { 將源字符串prefix長度轉換為小寫,前綴字符串也轉換為小寫,比較是否相等 String lcStr = str.substring(0, prefix.length()).toLowerCase(); String lcPrefix = prefix.toLowerCase(); return lcStr.equals(lcPrefix); } }
//忽略大小寫,判斷源字符串str是否以suffix結尾,處理邏輯類似上一個方法 public static boolean endsWithIgnoreCase(String str, String suffix) { if(str == null || suffix == null) return false; if(str.endsWith(suffix)) return true; if(str.length() < suffix.length()) { return false; } else { String lcStr = str.substring(str.length() - suffix.length()).toLowerCase(); String lcSuffix = suffix.toLowerCase(); return lcStr.equals(lcSuffix); } }