001    /* ========================================================================
002     * JCommon : a free general purpose class library for the Java(tm) platform
003     * ========================================================================
004     *
005     * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
006     * 
007     * Project Info:  http://www.jfree.org/jcommon/index.html
008     *
009     * This library is free software; you can redistribute it and/or modify it 
010     * under the terms of the GNU Lesser General Public License as published by 
011     * the Free Software Foundation; either version 2.1 of the License, or 
012     * (at your option) any later version.
013     *
014     * This library is distributed in the hope that it will be useful, but 
015     * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 
016     * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 
017     * License for more details.
018     *
019     * You should have received a copy of the GNU Lesser General Public
020     * License along with this library; if not, write to the Free Software
021     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
022     * USA.  
023     *
024     * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 
025     * in the United States and other countries.]
026     * 
027     * ----------------
028     * StringUtils.java
029     * ----------------
030     * (C)opyright 2003, 2004, by Thomas Morgner and Contributors.
031     *
032     * Original Author:  Thomas Morgner;
033     * Contributor(s):   David Gilbert (for Object Refinery Limited);
034     *
035     * $Id: StringUtils.java,v 1.5 2005/10/18 13:24:19 mungady Exp $
036     *
037     * Changes
038     * -------------------------
039     * 21.06.2003 : Initial version
040     *
041     */
042    
043    package org.jfree.util;
044    
045    /**
046     * String utilities.
047     * 
048     * @author Thomas Morgner.
049     */
050    public class StringUtils {
051    
052        /**
053         * Private constructor prevents object creation. 
054         */
055        private StringUtils() {
056        }
057    
058        /**
059         * Helper functions to query a strings start portion. The comparison is case insensitive.
060         *
061         * @param base  the base string.
062         * @param start  the starting text.
063         *
064         * @return true, if the string starts with the given starting text.
065         */
066        public static boolean startsWithIgnoreCase(final String base, final String start) {
067            if (base.length() < start.length()) {
068                return false;
069            }
070            return base.regionMatches(true, 0, start, 0, start.length());
071        }
072    
073        /**
074         * Helper functions to query a strings end portion. The comparison is case insensitive.
075         *
076         * @param base  the base string.
077         * @param end  the ending text.
078         *
079         * @return true, if the string ends with the given ending text.
080         */
081        public static boolean endsWithIgnoreCase(final String base, final String end) {
082            if (base.length() < end.length()) {
083                return false;
084            }
085            return base.regionMatches(true, base.length() - end.length(), end, 0, end.length());
086        }
087    
088        /**
089         * Queries the system properties for the line separator. If access
090         * to the System properties is forbidden, the UNIX default is returned.
091         *
092         * @return the line separator.
093         */
094        public static String getLineSeparator() {
095            try {
096                return System.getProperty("line.separator", "\n");
097            }
098            catch (Exception e) {
099                return "\n";
100            }
101        }
102    
103    
104    }