zoukankan      html  css  js  c++  java
  • 手写代码 java.lang.String/StringBuilder 相关

    语言:Java

    String.substring(int , int ) -- 截取某个区间的string

        /**
         * Returns a string that is a substring of this string. The
         * substring begins with the character at the specified index and
         * extends to the end of this string. <p>
         * Examples:
         * <blockquote><pre>
         * "unhappy".substring(2) returns "happy"
         * "Harbison".substring(3) returns "bison"
         * "emptiness".substring(9) returns "" (an empty string)
         * </pre></blockquote>
         *
         * @param      beginIndex   the beginning index, inclusive.
         * @return     the specified substring.
         * @exception  IndexOutOfBoundsException  if
         *             {@code beginIndex} is negative or larger than the
         *             length of this {@code String} object.
         */
        public String substring(int beginIndex) {
            if (beginIndex < 0) {
                throw new StringIndexOutOfBoundsException(beginIndex);
            }
            int subLen = value.length - beginIndex;
            if (subLen < 0) {
                throw new StringIndexOutOfBoundsException(subLen);
            }
            return (beginIndex == 0) ? this : new String(value, beginIndex, subLen);
        }
    
    
    /**
         * Returns a string that is a substring of this string. The
         * substring begins at the specified {@code beginIndex} and
         * extends to the character at index {@code endIndex - 1}.
         * Thus the length of the substring is {@code endIndex-beginIndex}.
         * <p>
         * Examples:
         * <blockquote><pre>
         * "hamburger".substring(4, 8) returns "urge"
         * "smiles".substring(1, 5) returns "mile"
         * </pre></blockquote>
         *
         * @param      beginIndex   the beginning index, inclusive.
         * @param      endIndex     the ending index, exclusive.
         * @return     the specified substring.
         * @exception  IndexOutOfBoundsException  if the
         *             {@code beginIndex} is negative, or
         *             {@code endIndex} is larger than the length of
         *             this {@code String} object, or
         *             {@code beginIndex} is larger than
         *             {@code endIndex}.
         */
        public String substring(int beginIndex, int endIndex) {
            if (beginIndex < 0) {
                throw new StringIndexOutOfBoundsException(beginIndex);
            }
            if (endIndex > value.length) {
                throw new StringIndexOutOfBoundsException(endIndex);
            }
            int subLen = endIndex - beginIndex;
            if (subLen < 0) {
                throw new StringIndexOutOfBoundsException(subLen);
            }
            return ((beginIndex == 0) && (endIndex == value.length)) ? this
                    : new String(value, beginIndex, subLen);
        }

    String.charAt(int) -- String中某个位置的字符

        /**
         * Returns the {@code char} value at the
         * specified index. An index ranges from {@code 0} to
         * {@code length() - 1}. The first {@code char} value of the sequence
         * is at index {@code 0}, the next at index {@code 1},
         * and so on, as for array indexing.
         *
         * <p>If the {@code char} value specified by the index is a
         * <a href="Character.html#unicode">surrogate</a>, the surrogate
         * value is returned.
         *
         * @param      index   the index of the {@code char} value.
         * @return     the {@code char} value at the specified index of this string.
         *             The first {@code char} value is at index {@code 0}.
         * @exception  IndexOutOfBoundsException  if the {@code index}
         *             argument is negative or not less than the length of this
         *             string.
         */
        public char charAt(int index) {
            if ((index < 0) || (index >= value.length)) {
                throw new StringIndexOutOfBoundsException(index);
            }
            return value[index];
        }

    String.length() -- 可以直接获得string的长度

    String.indexOf(char) -- 找到返回index,找不到返回-1

    相关重载:

    String.indexOf(String)

    String.indexOf(String,int fromIndex)

    String.indexOf(int unicode)

    String.indexOf(int unicode,int fromIndex)

    String.split(" ")  -- 必须是双引号 

    //必须是双引号!!!不能是单引号
    String[] splitArray = s.split(" ");

    倒叙插入字符

    如果需要倒叙插入字符,有两种方法:

    方法一:复杂度O(n2),背离StringBuilder()初衷

    1 StringBuilder sb = new StringBuilder();
    2 for(int i=0;i<100;i++){
    3     sb.insert(0, Integer.toString(i));
    4 }

    方法二:复杂度下降为O(n)

    1 StringBuilder sb = new StringBuilder();
    2 for(int i=0;i<100;i++){
    3     sb.append(Integer.toString(i));
    4 }
    5 sb.reverse();
    6 return result.toString();

    String.isEmpty()

    String默认只有String.isEmpty()函数,没有isNullOrEmpty()函数。

  • 相关阅读:
    用OLEDB读取EXCEL时,单元格内容长度超过255被截断
    jquery对属性和特性的操作
    yum报[Errno 256] No more mirrors to try
    c语言:计算数组长度
    递归之100.相同的树
    1160.Find Words That Can Be Formed By Characters
    892.surface area of 3D shapes
    递归之24&206(链表)
    C++ private
    Dell 7559 安装黑苹果 Mojave14.15.6
  • 原文地址:https://www.cnblogs.com/frankcui/p/10403564.html
Copyright © 2011-2022 走看看