X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fstring%2FWildCardMatcher.java;h=0da17384c8b36d882c3a59a3f92f9ff192848a1a;hb=9bf004ce4e9b5edff36c65fcc8cc0f303390d7fc;hp=e7fa56b2369de53dcecbf18a981f3a69a3b8231b;hpb=afaa928dd10304ee3e8e6bad3a377ced6a7b2f42;p=svjatoslav_commons.git 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);
+ }
}