Author: bayard Date: Tue Jun 6 12:35:14 2006 New Revision: 412200 URL: http://svn.apache.org/viewvc?rev=412200&view=rev Log: Added containsIgnoreCase method - LANG-263
Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/StringUtilsEqualsIndexOfTest.java Modified: jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java?rev=412200&r1=412199&r2=412200&view=diff ============================================================================== --- jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java (original) +++ jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringUtils.java Tue Jun 6 12:35:14 2006 @@ -1034,6 +1034,36 @@ return str.indexOf(searchStr) >= 0; } + /** + * <p>Checks if String contains a search String irrespective of case, + * handling <code>null</code>. This method uses + * [EMAIL PROTECTED] #contains(String, String)}.</p> + * + * <p>A <code>null</code> String will return <code>false</code>.</p> + * + * <pre> + * StringUtils.contains(null, *) = false + * StringUtils.contains(*, null) = false + * StringUtils.contains("", "") = true + * StringUtils.contains("abc", "") = true + * StringUtils.contains("abc", "a") = true + * StringUtils.contains("abc", "z") = false + * StringUtils.contains("abc", "A") = true + * StringUtils.contains("abc", "Z") = false + * </pre> + * + * @param str the String to check, may be null + * @param searchStr the String to find, may be null + * @return true if the String contains the search String irrespective of + * case or false if not or <code>null</code> string input + */ + public static boolean containsIgnoreCase(String str, String searchStr) { + if (str == null || searchStr == null) { + return false; + } + return contains(str.toUpperCase(), searchStr.toUpperCase()); + } + // IndexOfAny chars //----------------------------------------------------------------------- /** Modified: jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/StringUtilsEqualsIndexOfTest.java URL: http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/StringUtilsEqualsIndexOfTest.java?rev=412200&r1=412199&r2=412200&view=diff ============================================================================== --- jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/StringUtilsEqualsIndexOfTest.java (original) +++ jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/StringUtilsEqualsIndexOfTest.java Tue Jun 6 12:35:14 2006 @@ -274,6 +274,40 @@ assertEquals(false, StringUtils.contains("abc", "z")); } + public void testContainsIgnoreCase_StringString() { + assertFalse(StringUtils.containsIgnoreCase(null, null)); + + // Null tests + assertFalse(StringUtils.containsIgnoreCase(null, "")); + assertFalse(StringUtils.containsIgnoreCase(null, "a")); + assertFalse(StringUtils.containsIgnoreCase(null, "abc")); + + assertFalse(StringUtils.containsIgnoreCase("", null)); + assertFalse(StringUtils.containsIgnoreCase("a", null)); + assertFalse(StringUtils.containsIgnoreCase("abc", null)); + + // Match len = 0 + assertTrue(StringUtils.containsIgnoreCase("", "")); + assertTrue(StringUtils.containsIgnoreCase("a", "")); + assertTrue(StringUtils.containsIgnoreCase("abc", "")); + + // Match len = 1 + assertFalse(StringUtils.containsIgnoreCase("", "a")); + assertTrue(StringUtils.containsIgnoreCase("a", "a")); + assertTrue(StringUtils.containsIgnoreCase("abc", "a")); + assertFalse(StringUtils.containsIgnoreCase("", "A")); + assertTrue(StringUtils.containsIgnoreCase("a", "A")); + assertTrue(StringUtils.containsIgnoreCase("abc", "A")); + + // Match len > 1 + assertFalse(StringUtils.containsIgnoreCase("", "abc")); + assertFalse(StringUtils.containsIgnoreCase("a", "abc")); + assertTrue(StringUtils.containsIgnoreCase("xabcz", "abc")); + assertFalse(StringUtils.containsIgnoreCase("", "ABC")); + assertFalse(StringUtils.containsIgnoreCase("a", "ABC")); + assertTrue(StringUtils.containsIgnoreCase("xabcz", "ABC")); + } + //----------------------------------------------------------------------- public void testIndexOfAny_StringStringarray() { assertEquals(-1, StringUtils.indexOfAny(null, (String[]) null)); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]