X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=getdown%2Fsrc%2Fgetdown%2Fcore%2Fsrc%2Fmain%2Fjava%2Fjalview%2Futil%2FStringUtils.java;h=1c67c92ea0322ba0b3c0029265347e0e460fb48e;hb=a7169b1c72607f3c9357195b4999869650a2a891;hp=d758395bd10b28caaef522ad20d7f4758a3bf351;hpb=726bda0e9aea2d68b90803e142346cc46c8d4772;p=jalview.git diff --git a/getdown/src/getdown/core/src/main/java/jalview/util/StringUtils.java b/getdown/src/getdown/core/src/main/java/jalview/util/StringUtils.java index d758395..1c67c92 100644 --- a/getdown/src/getdown/core/src/main/java/jalview/util/StringUtils.java +++ b/getdown/src/getdown/core/src/main/java/jalview/util/StringUtils.java @@ -24,6 +24,8 @@ import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringUtils @@ -409,9 +411,10 @@ public class StringUtils } if (s.length() <= 1) { - return s.toUpperCase(); + return s.toUpperCase(Locale.ROOT); } - return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase(); + return s.substring(0, 1).toUpperCase(Locale.ROOT) + + s.substring(1).toLowerCase(Locale.ROOT); } /** @@ -427,7 +430,7 @@ public class StringUtils { return null; } - String tmp2up = text.toUpperCase(); + String tmp2up = text.toUpperCase(Locale.ROOT); int startTag = tmp2up.indexOf(""); if (startTag > -1) { @@ -572,9 +575,9 @@ public class StringUtils public static int firstCharPosIgnoreCase(String text, String chars) { int min = text.length() + 1; - for (char c : chars.toLowerCase().toCharArray()) + for (char c : chars.toLowerCase(Locale.ROOT).toCharArray()) { - int i = text.toLowerCase().indexOf(c); + int i = text.toLowerCase(Locale.ROOT).indexOf(c); if (0 <= i && i < min) { min = i; @@ -582,4 +585,54 @@ public class StringUtils } return min < text.length() + 1 ? min : -1; } + + public static int indexOfFirstWhitespace(String text) + { + int index = -1; + Pattern pat = Pattern.compile("\\s"); + Matcher m = pat.matcher(text); + if (m.find()) + { + index = m.start(); + } + return index; + } + + /* + * implementation of String.replaceLast. + * Replaces only the last occurrence of toReplace in string with replacement. + */ + public static String replaceLast(String string, String toReplace, + String replacement) + { + int pos = string.lastIndexOf(toReplace); + if (pos > -1) + { + return new StringBuilder().append(string.substring(0, pos)) + .append(replacement) + .append(string.substring(pos + toReplace.length())) + .toString(); + } + else + { + return string; + } + + } + + /* + * return the maximum length of a List of Strings + */ + public static int maxLength(List l) + { + int max = 0; + for (String s : l) + { + if (s == null) + continue; + if (s.length() > max) + max = s.length(); + } + return max; + } }