Пример #1
1
 /**
  * Convert all special tags in a string to local URL (e.g [sprite: NameOfPony] =>
  * file://path/to/local/sprite.png); allowed special tags are: sprite, type, movetype
  *
  * @return The converted string
  */
 public static String toLocalURL(final String msg) {
   StringBuilder converted = new StringBuilder();
   boolean parsingTag = false;
   boolean inTagName = true;
   StringBuilder tagName = new StringBuilder(10);
   StringBuilder tagArg = new StringBuilder(30);
   for (int i = 0; i < msg.length(); ++i) {
     char c = msg.charAt(i);
     switch (c) {
       case '[':
         if (!parsingTag) {
           parsingTag = true;
         } else {
           if (inTagName) tagName.append(c);
           else tagArg.append(c);
         }
         break;
       case ']':
         if (parsingTag) {
           parsingTag = false;
           converted.append(
               convertLocalURLTag(tagName.toString().trim(), tagArg.toString().trim()));
           tagName.setLength(0);
           tagArg.setLength(0);
           inTagName = true;
         } else {
           converted.append(c);
         }
         break;
       case ':':
         if (parsingTag) {
           if (inTagName) inTagName = false;
           else tagArg.append(c);
         } else {
           converted.append(c);
         }
         break;
       default:
         if (parsingTag) {
           if (inTagName) tagName.append(c);
           else tagArg.append(c);
         } else {
           converted.append(c);
         }
     }
   }
   return converted.toString();
 }
Пример #2
1
  /**
   * Joins array elements to string.
   *
   * @param arr Array.
   * @return String.
   */
  @Nullable
  public static String compactArray(Object[] arr) {
    if (arr == null || arr.length == 0) return null;

    String sep = ", ";

    StringBuilder sb = new StringBuilder();

    for (Object s : arr) sb.append(s).append(sep);

    if (sb.length() > 0) sb.setLength(sb.length() - sep.length());

    return U.compact(sb.toString());
  }