Java String Chop chop(String str)

Here you can find the source of chop(String str)

Description

Remove the last character from a String.

License

Apache License

Parameter

Parameter Description
str the String to chop last character from, may be null

Return

String without last character, null if null String input

Declaration

public static String chop(String str) 

Method Source Code

//package com.java2s;
/**/*from   ww w .ja  va 2s . c o m*/
 * 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
 */

public class Main {
    /**
     * <code>\u000a</code> linefeed LF ('\n').
     * 
     * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#101089">JLF: Escape Sequences for Character and String
     *      Literals</a>
     * @since 2.2
     */
    public static final char LF = '\n';
    /**
     * <code>\u000d</code> carriage return CR ('\r').
     * 
     * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#101089">JLF: Escape Sequences for Character and String
     *      Literals</a>
     * @since 2.2
     */
    public static final char CR = '\r';
    /**
     * The empty String <code>""</code>.
     * 
     * @since 2.0
     */
    public static final String EMPTY = "";

    /**
     * <p>
     * Remove the last character from a String.
     * </p>
     * 
     * <p>
     * If the String ends in <code>\r\n</code>, then remove both of them.
     * </p>
     * 
     * <pre>
     * StringUtils.chop(null)          = null
     * StringUtils.chop(&quot;&quot;)            = &quot;&quot;
     * StringUtils.chop(&quot;abc \r&quot;)      = &quot;abc &quot;
     * StringUtils.chop(&quot;abc\n&quot;)       = &quot;abc&quot;
     * StringUtils.chop(&quot;abc\r\n&quot;)     = &quot;abc&quot;
     * StringUtils.chop(&quot;abc&quot;)         = &quot;ab&quot;
     * StringUtils.chop(&quot;abc\nabc&quot;)    = &quot;abc\nab&quot;
     * StringUtils.chop(&quot;a&quot;)           = &quot;&quot;
     * StringUtils.chop(&quot;\r&quot;)          = &quot;&quot;
     * StringUtils.chop(&quot;\n&quot;)          = &quot;&quot;
     * StringUtils.chop(&quot;\r\n&quot;)        = &quot;&quot;
     * </pre>
     * 
     * @param str the String to chop last character from, may be null
     * @return String without last character, <code>null</code> if null String input
     */
    public static String chop(String str) {
        if (str == null) {
            return null;
        }
        int strLen = str.length();
        if (strLen < 2) {
            return EMPTY;
        }
        int lastIdx = strLen - 1;
        String ret = str.substring(0, lastIdx);
        char last = str.charAt(lastIdx);
        if (last == LF) {
            if (ret.charAt(lastIdx - 1) == CR) {
                return ret.substring(0, lastIdx - 1);
            }
        }
        return ret;
    }
}

Related

  1. chop(String str)
  2. chop(String str)
  3. chop(String str)
  4. chop(String str)
  5. chop(String str)
  6. chop(String str)
  7. chop(String str, int maxLength)
  8. chop(String string, int length)
  9. chop(String string, int length)