java模糊比較兩個字符串對象是否相等,忽略符號,忽略大小寫,忽略全角與半角。java
/** * @param obj1 * @param obj2 * @return */ public boolean isEquals(Object obj1, Object obj2) { if (obj1 == null || obj2 == null) { return false; } String str1 = (String) obj1; String str2 = (String) obj2; if (str1.equalsIgnoreCase(str2)) { return true; } else { String s1 = str1.replaceAll("\\pP", ""); String s2 = str2.replaceAll("\\pP", ""); if (s1.equalsIgnoreCase(s2)) { return true; } else { char[] chars1 = s1.toCharArray(); char[] chars2 = s2.toCharArray(); for (int i = 0; i < chars1.length; i++) { if (chars1[i] == '\u3000') { chars1[i] = ' '; } else if (chars1[i] > '\uFF00' && chars1[i] < '\uFF5F') { chars1[i] = (char) (chars1[i] - 65248); } } for (int i = 0; i < chars2.length; i++) { if (chars2[i] == '\u3000') { chars2[i] = ' '; } else if (chars2[i] > '\uFF00' && chars2[i] < '\uFF5F') { chars2[i] = (char) (chars2[i] - 65248); } } s1 = new String(chars1); s2 = new String(chars2); if (s1.equalsIgnoreCase(s2)) { return true; } } } return false; }
補充:字符串中的全角半角轉換方法對象
/** * 半角轉全角 * * @param input String. * @return 全角字符串. */ public static String ToSBC(String input) { char c[] = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] == ' ') { c[i] = '\u3000'; } else if (c[i] < '\177') { c[i] = (char) (c[i] + 65248); } } return new String(c); } /** * 全角轉半角 * * @param input String. * @return 半角字符串 */ public static String ToDBC(String input) { char c[] = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] == '\u3000') { c[i] = ' '; } else if (c[i] > '\uFF00' && c[i] < '\uFF5F') { c[i] = (char) (c[i] - 65248); } } String returnString = new String(c); return returnString; }