Java String Left left(String str, int len)

Here you can find the source of left(String str, int len)

Description

Gets the leftmost len characters of a String.

If len characters are not available, or the String is null, the String will be returned without an exception.

License

Open Source License

Parameter

Parameter Description
str the String to get the leftmost characters from, may be null
len the length of the required String, must be zero or positive

Return

the leftmost characters, null if null String input

Declaration

public static String left(String str, int len) 

Method Source Code

//package com.java2s;
//License from project: Open Source License 

public class Main {
    /**//from  ww w.java 2s .  c  o  m
     * The empty String <code>""</code>.
     *
     * @since 2.0
     */
    public static final String EMPTY = "";

    /**
     * <p>Gets the leftmost <code>len</code> characters of a String.</p>
     * <p/>
     * <p>If <code>len</code> characters are not available, or the
     * String is <code>null</code>, the String will be returned without
     * an exception. An exception is thrown if len is negative.</p>
     * <p/>
     * <pre>
     * StrUtils.left(null, *)    = null
     * StrUtils.left(*, -ve)     = ""
     * StrUtils.left("", *)      = ""
     * StrUtils.left("abc", 0)   = ""
     * StrUtils.left("abc", 2)   = "ab"
     * StrUtils.left("abc", 4)   = "abc"
     * </pre>
     *
     * @param str the String to get the leftmost characters from, may be null
     * @param len the length of the required String, must be zero or positive
     * @return the leftmost characters, <code>null</code> if null String input
     */
    public static String left(String str, int len) {
        if (str == null) {
            return null;
        }
        if (len < 0) {
            return EMPTY;
        }
        if (str.length() <= len) {
            return str;
        }
        return str.substring(0, len);
    }

    /**
     * Gets a String's length or <code>0</code> if the String is <code>null</code>.
     *
     * @param str a String or <code>null</code>
     * @return String length or <code>0</code> if the String is <code>null</code>.
     * @since 2.4
     */
    public static int length(String str) {
        return str == null ? 0 : str.length();
    }

    /**
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
     * <p/>
     * <p>A negative start position can be used to start <code>n</code>
     * characters from the end of the String.</p>
     * <p/>
     * <p>A <code>null</code> String will return <code>null</code>.
     * An empty ("") String will return "".</p>
     * <p/>
     * <pre>
     * StrUtils.substring(null, *)   = null
     * StrUtils.substring("", *)     = ""
     * StrUtils.substring("abc", 0)  = "abc"
     * StrUtils.substring("abc", 2)  = "c"
     * StrUtils.substring("abc", 4)  = ""
     * StrUtils.substring("abc", -2) = "bc"
     * StrUtils.substring("abc", -4) = "abc"
     * </pre>
     *
     * @param str   the String to get the substring from, may be null
     * @param start the position to start from, negative means
     *              count back from the end of the String by this many characters
     * @return substring from start position, <code>null</code> if null String input
     */
    public static String substring(String str, int start) {
        if (str == null) {
            return null;
        }

        // handle negatives, which means last n characters
        if (start < 0) {
            start = str.length() + start; // remember start is negative
        }

        if (start < 0) {
            start = 0;
        }
        if (start > str.length()) {
            return EMPTY;
        }

        return str.substring(start);
    }

    /**
     * <p>Gets a substring from the specified String avoiding exceptions.</p>
     * <p/>
     * <p>A negative start position can be used to start/end <code>n</code>
     * characters from the end of the String.</p>
     * <p/>
     * <p>The returned substring starts with the character in the <code>start</code>
     * position and ends before the <code>end</code> position. All position counting is
     * zero-based -- i.e., to start at the beginning of the string use
     * <code>start = 0</code>. Negative start and end positions can be used to
     * specify offsets relative to the end of the String.</p>
     * <p/>
     * <p>If <code>start</code> is not strictly to the left of <code>end</code>, ""
     * is returned.</p>
     * <p/>
     * <pre>
     * StrUtils.substring(null, *, *)    = null
     * StrUtils.substring("", * ,  *)    = "";
     * StrUtils.substring("abc", 0, 2)   = "ab"
     * StrUtils.substring("abc", 2, 0)   = ""
     * StrUtils.substring("abc", 2, 4)   = "c"
     * StrUtils.substring("abc", 4, 6)   = ""
     * StrUtils.substring("abc", 2, 2)   = ""
     * StrUtils.substring("abc", -2, -1) = "b"
     * StrUtils.substring("abc", -4, 2)  = "ab"
     * </pre>
     *
     * @param str   the String to get the substring from, may be null
     * @param start the position to start from, negative means
     *              count back from the end of the String by this many characters
     * @param end   the position to end at (exclusive), negative means
     *              count back from the end of the String by this many characters
     * @return substring from start position to end positon,
     * <code>null</code> if null String input
     */
    public static String substring(String str, int start, int end) {
        if (str == null) {
            return null;
        }

        // handle negatives
        if (end < 0) {
            end = str.length() + end; // remember end is negative
        }
        if (start < 0) {
            start = str.length() + start; // remember start is negative
        }

        // check length next
        if (end > str.length()) {
            end = str.length();
        }

        // if start is greater than end, return ""
        if (start > end) {
            return EMPTY;
        }

        if (start < 0) {
            start = 0;
        }
        if (end < 0) {
            end = 0;
        }

        return str.substring(start, end);
    }
}

Related

  1. left(String s, int width)
  2. left(String source, int length)
  3. left(String source, String searchFor)
  4. left(String source, String searchFor)
  5. left(String str, int count)
  6. left(String str, int len)
  7. left(String str, int len)
  8. left(String str, int len)
  9. left(String str, int len, String appendStrIfOver)