LANG-445 - new method StringUtils.startsWithAny(String str, String[] searchStrs)

git-svn-id: https://svn.apache.org/repos/asf/commons/proper/lang/trunk@697715 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sebastian Bazley 2008-09-22 08:53:07 +00:00
parent fa436d849d
commit a78f1c2b45
2 changed files with 42 additions and 0 deletions

View File

@ -5943,6 +5943,38 @@ public class StringUtils {
}
return str.regionMatches(ignoreCase, 0, prefix, 0, prefix.length());
}
/**
* <p>Check if a String starts with any of an array of specified strings.</p>
*
* <pre>
* StringUtils.startsWithAny(null, null) = false
* StringUtils.startsWithAny(null, new String[] {"abc"}) = false
* StringUtils.startsWithAny("abcxyz", null) = false
* StringUtils.startsWithAny("abcxyz", new String[] {""}) = false
* StringUtils.startsWithAny("abcxyz", new String[] {"abc"}) = true
* StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abc"}) = true
* </pre>
*
* @see java.lang.String#startsWithAny(String, String[])
* @param string the String to check, may be null
* @param searchStrings the Strings to find, may be null or empty
* @return <code>true</code> if the String starts with any of the the prefixes, case insensitive, or
* both <code>null</code>
* @since 3.0
*/
public static boolean startsWithAny(String string, String[] searchStrings) {
if (isEmpty(string) || ArrayUtils.isEmpty(searchStrings)) {
return false;
}
for (int i = 0; i < searchStrings.length; i++) {
String searchString = searchStrings[i];
if (StringUtils.startsWith(string, searchString)) {
return true;
}
}
return false;
}
// endsWith
//-----------------------------------------------------------------------

View File

@ -1837,5 +1837,15 @@ public class StringUtilsTest extends TestCase {
assertEquals("", StringUtils.getCommonPrefix(new String[] {"xyz", "abcde"}));
assertEquals("i am a ", StringUtils.getCommonPrefix(new String[] {"i am a machine", "i am a robot"}));
}
public void testStartsWithAny() {
assertFalse(StringUtils.startsWithAny(null, null));
assertFalse(StringUtils.startsWithAny(null, new String[] {"abc"}));
assertFalse(StringUtils.startsWithAny("abcxyz", null));
assertFalse(StringUtils.startsWithAny("abcxyz", new String[] {}));
assertTrue(StringUtils.startsWithAny("abcxyz", new String[] {"abc"}));
assertTrue(StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abc"}));
assertFalse(StringUtils.startsWithAny("abcxyz", new String[] {null, "xyz", "abcd"}));
}
}