io.ebeaninternal.server.el.CharMatch Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ebean Show documentation
Show all versions of ebean Show documentation
composite of common runtime dependencies for all platforms
package io.ebeaninternal.server.el;
/**
* Case insensitive string matching.
*
* Provides an alternative to using regular expressions.
*
*/
public final class CharMatch {
private final char[] upperChars;
private final int maxLength;
public CharMatch(String s) {
this.upperChars = s.toUpperCase().toCharArray();
this.maxLength = upperChars.length;
}
public boolean startsWith(String other) {
if (other == null || other.length() < maxLength) {
return false;
}
char ta[] = other.toCharArray();
int pos = -1;
while (++pos < maxLength) {
char c1 = upperChars[pos];
char c2 = Character.toUpperCase(ta[pos]);
if (c1 != c2) {
return false;
}
}
return true;
}
public boolean endsWith(String other) {
if (other == null || other.length() < maxLength) {
return false;
}
char ta[] = other.toCharArray();
int offset = ta.length - maxLength;
int pos = maxLength;
while (--pos >= 0) {
char c1 = upperChars[pos];
char c2 = Character.toUpperCase(ta[offset + pos]);
if (c1 != c2) {
return false;
}
}
return true;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy