X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=svjatoslav_commons.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fstring%2FWildCardMatcher.java;h=0da17384c8b36d882c3a59a3f92f9ff192848a1a;hp=e7fa56b2369de53dcecbf18a981f3a69a3b8231b;hb=9bf004ce4e9b5edff36c65fcc8cc0f303390d7fc;hpb=afaa928dd10304ee3e8e6bad3a377ced6a7b2f42 diff --git a/src/main/java/eu/svjatoslav/commons/string/WildCardMatcher.java b/src/main/java/eu/svjatoslav/commons/string/WildCardMatcher.java index e7fa56b..0da1738 100755 --- a/src/main/java/eu/svjatoslav/commons/string/WildCardMatcher.java +++ b/src/main/java/eu/svjatoslav/commons/string/WildCardMatcher.java @@ -11,94 +11,93 @@ package eu.svjatoslav.commons.string; public class WildCardMatcher { - /** - * Allow only for * in wildcards - */ - private static boolean checkWildCardEnd(final String wildcardExpression, - int wildCardPosition) { - for (; wildCardPosition < wildcardExpression.length(); wildCardPosition++) { - final char wildCardChar = wildcardExpression - .charAt(wildCardPosition); - if (wildCardChar != '*') - return false; - } - - return true; - } - - /** - *
-	 * Test input string against wildcard expression.
-	 * * -- corresponds to any amount of characters.
-	 * ? -- corresponds to any single character.
-	 * 
- * - * @param inputString - * input string - * @param wildcardExpression - * wildcard expression - * @return true if input string matches input pattern - */ - public static boolean match(final String inputString, - final String wildcardExpression) { - - if (inputString == null) - return false; - - if (wildcardExpression == null) - return false; - - int i; - - for (i = 0; i < inputString.length(); i++) { - if (i >= wildcardExpression.length()) - return false; - final char wildCardChar = wildcardExpression.charAt(i); - if (wildCardChar == '*') - return matchPiece(inputString, i, wildcardExpression, i + 1); - if (wildCardChar != '?') - if (inputString.charAt(i) != wildCardChar) - return false; - } - - return checkWildCardEnd(wildcardExpression, i); - } - - private static boolean matchPiece(final String inputString, - final int inputStringIndex, final String wildcardExpression, - final int wildCardExpressionIndex) { - - int wildCardPosition = wildCardExpressionIndex; - - for (int i = inputStringIndex; i < inputString.length(); i++) { - - wildCardPosition = wildCardExpressionIndex; - - subMatchAttempt: { - - for (int j = i; j < inputString.length(); j++) { - if (wildCardPosition >= wildcardExpression.length()) - break subMatchAttempt; - final char wildCardChar = wildcardExpression - .charAt(wildCardPosition); - - if (wildCardChar == '*') - return matchPiece(inputString, j, wildcardExpression, - wildCardPosition + 1); - - if (wildCardChar != '?') - if (inputString.charAt(j) != wildCardChar) - break subMatchAttempt; - - wildCardPosition++; - } - - return checkWildCardEnd(wildcardExpression, wildCardPosition); - } - - } - - return checkWildCardEnd(wildcardExpression, wildCardPosition); - } + /** + * Allow only for * in wildcards + */ + private static boolean checkWildCardEnd(final String wildcardExpression, + int wildCardPosition) { + for (; wildCardPosition < wildcardExpression.length(); wildCardPosition++) { + final char wildCardChar = wildcardExpression + .charAt(wildCardPosition); + if (wildCardChar != '*') + return false; + } + + return true; + } + + /** + *
+     * Test input string against wildcard expression.
+     * * -- corresponds to any amount of characters.
+     * ? -- corresponds to any single character.
+     * 
+ * + * @param inputString input string + * @param wildcardExpression wildcard expression + * @return true if input string matches input pattern + */ + public static boolean match(final String inputString, + final String wildcardExpression) { + + if (inputString == null) + return false; + + if (wildcardExpression == null) + return false; + + int i; + + for (i = 0; i < inputString.length(); i++) { + if (i >= wildcardExpression.length()) + return false; + final char wildCardChar = wildcardExpression.charAt(i); + if (wildCardChar == '*') + return matchPiece(inputString, i, wildcardExpression, i + 1); + if (wildCardChar != '?') + if (inputString.charAt(i) != wildCardChar) + return false; + } + + return checkWildCardEnd(wildcardExpression, i); + } + + private static boolean matchPiece(final String inputString, + final int inputStringIndex, final String wildcardExpression, + final int wildCardExpressionIndex) { + + int wildCardPosition = wildCardExpressionIndex; + + for (int i = inputStringIndex; i < inputString.length(); i++) { + + wildCardPosition = wildCardExpressionIndex; + + subMatchAttempt: + { + + for (int j = i; j < inputString.length(); j++) { + if (wildCardPosition >= wildcardExpression.length()) + break subMatchAttempt; + final char wildCardChar = wildcardExpression + .charAt(wildCardPosition); + + if (wildCardChar == '*') + return matchPiece(inputString, j, wildcardExpression, + wildCardPosition + 1); + + if (wildCardChar != '?') + if (inputString.charAt(j) != wildCardChar) + break subMatchAttempt; + + wildCardPosition++; + } + + return checkWildCardEnd(wildcardExpression, wildCardPosition); + } + + } + + return checkWildCardEnd(wildcardExpression, wildCardPosition); + } }