@Override protected CharSequence apply(CharSequence name) { name = super.apply(name); int lower = CharSequences.indexOf(name, meridian, 0, name.length()) - 1; if (lower >= 0 && name.charAt(lower) == '(') { int upper = lower + meridian.length() + 1; if (upper < name.length() && name.charAt(upper) == ')') { lower = CharSequences.skipTrailingWhitespaces(name, 0, lower); while (lower > 0) { final int c = Character.codePointBefore(name, lower); if (Character.isLetterOrDigit(c)) { // Remove the meridian name only if it is not at the beginning of the name. name = new StringBuilder(name).delete(lower, upper+1).toString(); break; } lower -= Character.charCount(c); } } } return name; } });
@Override protected CharSequence apply(CharSequence name) { name = super.apply(name); int lower = CharSequences.indexOf(name, meridian, 0, name.length()) - 1; if (lower >= 0 && name.charAt(lower) == '(') { int upper = lower + meridian.length() + 1; if (upper < name.length() && name.charAt(upper) == ')') { lower = CharSequences.skipTrailingWhitespaces(name, 0, lower); while (lower > 0) { final int c = Character.codePointBefore(name, lower); if (Character.isLetterOrDigit(c)) { // Remove the meridian name only if it is not at the beginning of the name. name = new StringBuilder(name).delete(lower, upper+1).toString(); break; } lower -= Character.charCount(c); } } } return name; } });