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

com.ocpsoft.pretty.faces.util.StringUtils Maven / Gradle / Ivy

There is a newer version: 10.0.2.Final
Show newest version
package com.ocpsoft.pretty.faces.util;

/**
 * 
 * Helper class providing similar functions like the
 * StringUtils class of Apache Commons.
 * 
 * @author Christian Kaltepoth
 *
 */
public class StringUtils
{
   
   private static final char SLASH = '/';
   
   public static boolean isBlank(String s) {
      return s == null || s.trim().length() == 0;
   }
   
   public static boolean isNotBlank(String s) {
      return s != null && s.trim().length() > 0;
   }
   
   public static boolean hasLeadingSlash(final String s)
   {
      return s != null && isNotBlank(s) && SLASH == s.charAt(0);
   }

   public static boolean hasTrailingSlash(final String s)
   {
      return s != null && isNotBlank(s) && SLASH == s.charAt(s.length() - 1);
   }

   public static String[] splitBySlash(final String s)
   {
      if (s == null || isBlank(s))
      {
         return new String[0];
      }
      char[] chars = s.toCharArray();
      int numberOfSegments = countSlashes(s) + 1;

      final String[] segments = new String[numberOfSegments];
      int currentSegmentIndex = 0;
      int lastSlashIndex = -1;
      for (int i = 0; i < chars.length; ++i)
      {
         if (chars[i] == '/')
         {
            segments[currentSegmentIndex] = new String(chars, lastSlashIndex + 1, i - lastSlashIndex - 1);
            ++currentSegmentIndex;
            lastSlashIndex = i;
         }
      }
      if (lastSlashIndex + 1 < chars.length)
      {
         segments[currentSegmentIndex] = new String(chars, lastSlashIndex + 1, chars.length - lastSlashIndex - 1);
      }
      else
      {
         segments[currentSegmentIndex] = "";
      }

      return segments;

   }

   public static int countSlashes(final String s)
   {
      int result = 0;
      for (char ch : s.toCharArray())
      {
         if (ch == '/')
         {
            ++result;
         }
      }
      return result;
   }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy