Data Type Java

/*
 *  Licensed to the Apache Software Foundation (ASF) under one
 *  or more contributor license agreements.  See the NOTICE file
 *  distributed with this work for additional information
 *  regarding copyright ownership.  The ASF licenses this file
 *  to you under the Apache License, Version 2.0 (the
 *  "License"); you may not use this file except in compliance
 *  with the License.  You may obtain a copy of the License at
 *  
 *    http://www.apache.org/licenses/LICENSE-2.0
 *  
 *  Unless required by applicable law or agreed to in writing,
 *  software distributed under the License is distributed on an
 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *  KIND, either express or implied.  See the License for the
 *  specific language governing permissions and limitations
 *  under the License. 
 *  
 */
/**
 * Various string manipulation methods that are more efficient then chaining
 * string operations: all is done in the same buffer without creating a bunch of
 * string objects.
 * 
 * @author Dungeon Project
 */
public class Main {
  /**
   * 


   * Removes spaces (char <= 32) from end of this String, handling
   * null by returning null.
   * 


   * Trim removes start characters <= 32.
   * 
   * 

   *  StringUtils.trimRight(null)          = null
   *  StringUtils.trimRight("")            = ""
   *  StringUtils.trimRight("     ")       = ""
   *  StringUtils.trimRight("abc")         = "abc"
   *  StringUtils.trimRight("    abc    ") = "    abc"
   * 

   * 
   * @param str
   *            the String to be trimmed, may be null
   * @return the trimmed string, null if null String input
   */
  public static final String trimRight( String str )
  {
      if ( isEmpty( str ) )
      {
          return "";
      }
      int length = str.length();
      int end = length;
      
      while ( ( end > 0 ) && ( str.charAt( end - 1 ) == ' ' ) )
      {
          if ( ( end > 1 ) && ( str.charAt(  end - 2 ) == '\\' ) )
          {
              break;
          }
          
          end--;
      }
      return ( end == length ? str : str.substring( 0, end ) );
  }
  /**
   * 


   * Removes spaces (char <= 32) from start of this String, handling
   * null by returning null.
   * 


   * Trim removes start characters <= 32.
   * 
   * 

   *  StringUtils.trimLeft(null)          = null
   *  StringUtils.trimLeft("")            = ""
   *  StringUtils.trimLeft("     ")       = ""
   *  StringUtils.trimLeft("abc")         = "abc"
   *  StringUtils.trimLeft("    abc    ") = "abc    "
   * 

   * 
   * @param str
   *            the String to be trimmed, may be null
   * @return the trimmed string, null if null String input
   */
  public static final String trimLeft( String str )
  {
      if ( isEmpty( str ) )
      {
          return "";
      }
      int start = 0;
      int end = str.length();
      
      while ( ( start < end ) && ( str.charAt( start ) == ' ' ) )
      {
          start++;
      }
      return ( start == 0 ? str : str.substring( start ) );
  }
  /**
   * 


   * Checks if a String is empty ("") or null.
   * 


   * 
   * 

   *  StringUtils.isEmpty(null)      = true
   *  StringUtils.isEmpty("")        = true
   *  StringUtils.isEmpty(" ")       = false
   *  StringUtils.isEmpty("bob")     = false
   *  StringUtils.isEmpty("  bob  ") = false
   * 

   * 
   * 


   * NOTE: This method changed in Lang version 2.0. It no longer trims the
   * String. That functionality is available in isBlank().
   * 


   * 
   * @param str
   *            the String to check, may be null
   * @return true if the String is empty or null
   */
  public static final boolean isEmpty( String str )
  {
      return str == null || str.length() == 0;
  }
}