下面列出了org.apache.commons.lang3.StringUtils#indexOfAnyBut ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static URI buildNewUrl(URI url, String relativeUrl)
{
int indexOfFirstNonSlashChar = StringUtils.indexOfAnyBut(relativeUrl, SLASH);
String normalizedRelativeUrl = indexOfFirstNonSlashChar > 1
? relativeUrl.substring(indexOfFirstNonSlashChar - 1)
: relativeUrl;
try
{
URI parsedRelativeUrl = URI.create(normalizedRelativeUrl);
if (url.isOpaque())
{
return new URI(url.getScheme(), url.getSchemeSpecificPart(), parsedRelativeUrl.getFragment());
}
String path = StringUtils.repeat(SLASH, indexOfFirstNonSlashChar - 1) + parsedRelativeUrl.getPath();
return new URI(url.getScheme(), url.getAuthority(), path, parsedRelativeUrl.getQuery(),
parsedRelativeUrl.getFragment());
}
catch (URISyntaxException e)
{
throw new IllegalArgumentException(e.getMessage(), e);
}
}
private static String replaceStartingTabsWithSpaces(String line) {
int index = StringUtils.indexOfAnyBut(line, "\t ");
if (index == -1) {
return line;
} else {
String start = line.substring(0, index).replaceAll("\t", TAB_AS_SPACES);
String end = line.substring(index);
return start + end;
}
}
public static String trimLeadingAndTrailingSpaces(String markdown)
{
StringBuilder markdownSB = new StringBuilder();
StringBuilder currentLine = new StringBuilder();
String firstLineIndent = null;
for (int i = 0; i < markdown.length(); i++)
{
char currentChar = markdown.charAt(i);
if (currentChar == '\r' || currentChar == '\n')
{
String currentLineString = currentLine.toString();
if (firstLineIndent == null && !StringUtils.isEmpty(currentLineString))
{
int firstNonWhitespaceIndex = StringUtils.indexOfAnyBut(currentLineString, " \t");
if (firstNonWhitespaceIndex != -1)
firstLineIndent = currentLineString.substring(0, firstNonWhitespaceIndex);
}
if (firstLineIndent != null)
currentLineString = StringUtils.removeStart(currentLineString, firstLineIndent);
markdownSB.append(currentLineString).append(SystemUtils.LINE_SEPARATOR);
currentLine.setLength(0);
// skip the next line separator for \r\n cases
if (currentChar == '\r' && markdown.length() > (i + 1) && markdown.charAt(i + 1) == '\n')
{
i++;
}
}
else
{
currentLine.append(currentChar);
}
}
markdownSB.append(currentLine);
return markdownSB.toString();
}