JAL-629 PAE matrix file guesstimate from filename
[jalview.git] / src / jalview / util / StringUtils.java
index 273f6ec..7e1b8ad 100644 (file)
  */
 package jalview.util;
 
-import java.util.Locale;
-
 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
@@ -413,7 +413,8 @@ public class StringUtils
     {
       return s.toUpperCase(Locale.ROOT);
     }
-    return s.substring(0, 1).toUpperCase(Locale.ROOT) + s.substring(1).toLowerCase(Locale.ROOT);
+    return s.substring(0, 1).toUpperCase(Locale.ROOT)
+            + s.substring(1).toLowerCase(Locale.ROOT);
   }
 
   /**
@@ -574,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;
@@ -584,4 +585,35 @@ 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.
+   */
+  public static String replaceLast(String string, String toReplace,
+          String replacement)
+  {
+    int pos = string.lastIndexOf(toReplace);
+    if (pos > -1)
+    {
+      return string.substring(0, pos) + replacement
+              + string.substring(pos + toReplace.length());
+    }
+    else
+    {
+      return string;
+    }
+  }
+
 }