All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.lessvoid.xml.tools.Split Maven / Gradle / Ivy

Go to download

Nifty GUI is a Java Library that supports the building of interactive user interfaces for games or similar applications. It utilizes OpenGL for rendering and it can be easily integrated into many rendering systems. The configuration of the GUI is stored in xml files with little supporting Java code. In short Nifty helps you to layout stuff, display it in a cool way and interact with it :)

The newest version!
package de.lessvoid.xml.tools;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;

public class Split {
  private static final String BEGIN_KEY = "${";
  private static final String END_KEY = "}";

  public static boolean containsKey(@Nullable final String value) {
    if (value == null) {
      return false;
    }
    return value.contains(BEGIN_KEY);
  }

  @Nonnull
  public static List split(@Nullable final String value) {

    List result = new ArrayList();
    if (value == null) {
      return result;
    }

    String remaining = value;
    int startIdx = 0;
    while (true) {
      remaining = remaining.substring(startIdx);
      if (remaining.length() == 0) {
        break;
      }

      boolean parsingKey = remaining.startsWith(BEGIN_KEY);
      int endIdx = findEndIdx(remaining, parsingKey);
      if (endIdx == -1) {
        result.add(remaining);
        break;
      }

      if (parsingKey) {
        result.add(remaining.substring(0, endIdx + 1));
        startIdx = endIdx + 1;
      } else {
        result.add(remaining.substring(0, endIdx));
        startIdx = endIdx;
      }
    }

    return result;
  }

  @Nonnull
  public static String join(@Nonnull final List parts) {
    StringBuilder result = new StringBuilder();
    for (String part : parts) {
      result.append(part);
    }
    return result.toString();
  }

  private static int findEndIdx(@Nonnull final String remaining, final boolean parsingKey) {
    if (parsingKey) {
      return remaining.indexOf(END_KEY);
    } else {
      return remaining.indexOf(BEGIN_KEY);
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy