jetbrick-commons/src/main/java/jetbrick/lang/StringUtils.java
public static String substringAfterLast(final String s, final String separator) {
        if (isEmpty(s)) {
            return s;
        }
        if (isEmpty(separator)) {
            return "";
        }
        final int pos = s.lastIndexOf(separator);
        if (pos < 0 || pos == s.length() - separator.length()) {
            return "";
        }
        return s.substring(pos + separator.length());
    }
public static String substringAfterLast(final String s, final String separator) {
        if (isEmpty(s)) {
            return s;
        }
        if (isEmpty(separator)) {
            return "";
        }
        final int pos = s.lastIndexOf(separator);
        if (pos < 0 || pos == s.length() - separator.length()) {
            return "";
        }
        return s.substring(pos + separator.length());
    }
<p>
Gets the substring after the last occurrence of a separator. The
separator is not returned.
</p>

<p>
A {@code null} string input will return {@code null}. An empty ("")
string input will return the empty string. An empty or {@code null}
separator will return the empty string if the input string is not
{@code null}.
</p>

<p>
If nothing is found, the empty string is returned.
</p>

<pre>
StringUtils.substringAfterLast(null, *)      = null
StringUtils.substringAfterLast("", *)        = ""
StringUtils.substringAfterLast(*, "")        = ""
StringUtils.substringAfterLast(*, null)      = ""
StringUtils.substringAfterLast("abc", "a")   = "bc"
StringUtils.substringAfterLast("abcba", "b") = "a"
StringUtils.substringAfterLast("abc", "c")   = ""
StringUtils.substringAfterLast("a", "a")     = ""
StringUtils.substringAfterLast("a", "z")     = ""
</pre>