截取字符串部分汇总

关于截取字符串是开发当中经常会用到的一个小方法,但是因为很多地方索引的0/1之争搞得容易记混淆了。对已知的几个使用记录一下。

  • java里的substring()方法

       (1)xx.substring(int begin)截取从指定的位置开始到字符最后的内容。

       (2)xx.substring(int begin,int end)截取指定的开始索引到结束索引之间的字符内容。(截取的内容包含begin不包含end

       注意点:begin是从0开始的。截取字符的时候截取的是个数。

                 如果start和end的值相等,那么返回的为一个空串。

                如果设定是begin设定为负数会报错 java.lang.StringIndexOutOfBoundsException: String index out of range: xx

  • SQL Server数据库里的substring()方法

       (1)SUBSTRING expressionbeginlength 截取从指定的位置开始的length长度的字符。(截取包含begin位置)

       注意点:begin是从1开始的。如果将begin设置为0则截取的结果里会比length的设定少一位,相当于截取了length-1的长度,begin允许设定为负值。

  • oracle数据库substr()方法

      (1)substr( string, begin, [ length ] )截取从指定位置开始,长度为length的字符,长度的设定可以选择。如果length的值不指定的话,截取从begin开始以后的所有内容。

          如果为负数则表示从后面往前截取,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

      注意点:begin是从1开始的。begin无论是设置为0还是1,截取的时候都会从第一个字符开始截取,这个要和sql server里的substring区分开,允许设定为负数,

  • javascript里的substr()方法

     (1)xx.substr(start,length) start为抽取字符的起始下标,start的索引从0开始,截取长度为length的字符。

        如果为负数则表示从后面往前截取,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

       注意点:start的索引是从0开始的,允许设定为负数。

  • javascript里的substring()方法

     (1)xx.substring(start,end)  start为抽取字符的起始下标,start的索引从0开始,其内容是从 start 处到 stop-1 处的所有字符。(包含start不包含end)

       注意点:以下三点是比较特别的,需要留意一下。

                ① 如果start和end的值相等,那么返回的为一个空串。

                如果start比end大,那么该方法在提取子串之前会先交换这两个参数。

                如果start或end为负数,那么它将被替换为0。

原文地址:https://www.cnblogs.com/xiaoxiaochengxuyuan/p/5641214.html