diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-06-19 15:49:04 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-06-19 15:49:04 +0800 |
| commit | 7d593ec3ab105a571f7ec04828557d406d3344d5 (patch) | |
| tree | 38dd3bd53f7343df7f0ed61d18a5c01ee2306fde /src/main/java/me/shedaniel/rei/client/SearchArgument.java | |
| parent | 6ad47cbb6e26bf74b1f432f59c5779c5905297dd (diff) | |
| download | RoughlyEnoughItems-7d593ec3ab105a571f7ec04828557d406d3344d5.tar.gz RoughlyEnoughItems-7d593ec3ab105a571f7ec04828557d406d3344d5.tar.bz2 RoughlyEnoughItems-7d593ec3ab105a571f7ec04828557d406d3344d5.zip | |
stuff
Diffstat (limited to 'src/main/java/me/shedaniel/rei/client/SearchArgument.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/client/SearchArgument.java | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/main/java/me/shedaniel/rei/client/SearchArgument.java b/src/main/java/me/shedaniel/rei/client/SearchArgument.java index 3e8a34ddb..cf0a5317c 100644 --- a/src/main/java/me/shedaniel/rei/client/SearchArgument.java +++ b/src/main/java/me/shedaniel/rei/client/SearchArgument.java @@ -14,8 +14,8 @@ public class SearchArgument { public static final SearchArgument ALWAYS = new SearchArgument(ArgumentType.ALWAYS, "", true); private ArgumentType argumentType; private String text; - public final Function<String, Boolean> INCLUDE = s -> boyerMooreHorspoolSearch(text, s) > -1; - public final Function<String, Boolean> NOT_INCLUDE = s -> boyerMooreHorspoolSearch(text, s) <= -1; + public final Function<String, Boolean> INCLUDE = s -> search(text, s); + public final Function<String, Boolean> NOT_INCLUDE = s -> !search(text, s); private boolean include; private Pattern pattern; @@ -29,10 +29,10 @@ public class SearchArgument { this.include = include; } - public static int boyerMooreHorspoolSearch(CharSequence pattern, CharSequence text) { + public static boolean search(CharSequence pattern, CharSequence text) { int patternLength = pattern.length(); if (patternLength == 0) - return 0; + return true; int shift[] = new int[256]; for(int k = 0; k < 256; k++) shift[k] = patternLength; @@ -44,11 +44,11 @@ public class SearchArgument { while (text.charAt(i + j) == pattern.charAt(j)) { j -= 1; if (j < 0) - return i; + return i >= 0; } i = i + shift[text.charAt(i + patternLength - 1)]; } - return -1; + return false; } public Function<String, Boolean> getFunction(boolean include) { |
