Java String Abbreviate abbreviate(final String value, int max)

Here you can find the source of abbreviate(final String value, int max)

Description

Abbreviates the given value to max characters (if necessary).
If the value is abbreviated, the result ends with " ...

License

Apache License

Parameter

Parameter Description
value The value.
max The max value.

Return

The value abbreviated (if necessary).

Declaration

public static String abbreviate(final String value, int max) 

Method Source Code

//package com.java2s;
//License from project: Apache License 

public class Main {
    /**/*  www.  j  a v  a 2 s .c  o  m*/
     * Abbreviates the given {@code value} to {@code max} characters (if necessary).<br>
     * If the {@code value} is abbreviated, the result ends with "{@code ...}".
     * <p/>
     * <pre>
     * abbreviate("my value", 150) -> "my value"
     * abbreviate("my value", 5) -> "my va..."
     * abbreviate("my value", 0) -> "..."
     * </pre>
     *
     * @param value
     *         The value.
     * @param max
     *         The max value.
     * @return The value abbreviated (if necessary).
     */
    public static String abbreviate(final String value, int max) {
        if (value == null) {
            return null;
        }
        if (max < 0) {
            max = 0;
        }
        return value.length() > max ? value.substring(0, max) + "..." : value;
    }

    /**
     * Gets a CharSequence length or {@code 0} if the CharSequence is {@code null}.
     *
     * @param cs
     *         a CharSequence or {@code null}
     * @return CharSequence length or {@code 0} if the CharSequence is {@code null}.
     */
    public static int length(CharSequence cs) {
        return cs == null ? 0 : cs.length();
    }

    /**
     * <p>
     * Gets a substring from the specified String avoiding exceptions.
     * </p>
     * <p>
     * A negative start position can be used to start/end {@code n} characters from the end of the String.
     * </p>
     * <p>
     * The returned substring starts with the character in the {@code start} position and ends before the {@code end}
     * position. All position counting is zero-based -- i.e., to start at the beginning of the string use
     * {@code start = 0}. Negative start and end positions can be used to specify offsets relative to the end of the
     * String.
     * </p>
     * <p>
     * If {@code start} is not strictly to the left of {@code end}, "" is returned.
     * </p>
     * <p/>
     * <pre>
     * StringUtils.substring(null, *, *)    = null
     * StringUtils.substring("", * ,  *)    = "";
     * StringUtils.substring("abc", 0, 2)   = "ab"
     * StringUtils.substring("abc", 2, 0)   = ""
     * StringUtils.substring("abc", 2, 4)   = "c"
     * StringUtils.substring("abc", 4, 6)   = ""
     * StringUtils.substring("abc", 2, 2)   = ""
     * StringUtils.substring("abc", -2, -1) = "b"
     * StringUtils.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 position, {@code null} if null String input
     */
    public static String substring(final 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 "";
        }

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

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

Related

  1. abbrev(String result, int maxLength, String separator)
  2. abbreviate(final String str)
  3. abbreviate(final String str, final int maxWidth)
  4. abbreviate(final String str, int lower, int upper, final String appendToEnd)
  5. abbreviate(final String value, final int maxLength)
  6. abbreviate(String _str, int _length)
  7. abbreviate(String content, int maxWidth, String enc, String suffix)
  8. abbreviate(String fileName, int maxLen)
  9. abbreviate(String input, int length)