【java 和 js】截取字符串的常用方法整理

java截取字符串相关的函数:

一、split()+正则表达式来进行截取

将字符串按照分割符截取,以数组形式返回.

//代码部分
String str = "hello, name, 12345, 6789";
String[] strs=str.split(",");
for(int i=0,len=strs.length;i<len;i++){
    
    
    System.out.println(strs[i]);
}

/**运行结果
hello
name
12345
6789
*/

二、subString(start,end)

提取字符串中介于两个指定下标之间的字符。
substring也是传入两个参数,但是这两个参数都是下标数字,下标从0开始计算,截取的长度是这两个下标的差
可以记作"含头不含尾"
如: “abcdefg”.substring(2,4) -> “cd”

三、substr(index,length)

从起始索引号提取字符串中指定数目的字符。
substr方法可以传入两个参数 index和length。index是起始位,length是截取的长度。

当index是个非负整数时:

    a. 如果不传入参数,则得到的还是字符串本身。
如: "abcdefg".substr() -> "abcdefg"

    b. 如果只传入一个参数,即index,则默认截取到字符串最后一位。
如: "abcdefg".substr(2) -> "defg".

当index是个负整数时:

    c. 如果传入一个负整数下标位则从后往前数,起始位为1,到达负整数绝对值的下标位,截取则是从前往后。

    如: "abcdefg".substr(-2) -> "fg" <=> "abcdefg".substr(-2 + "abcdefg".length)

四、StringUtils提供的方法

//与第一种方法效果一样
StringUtils.substring("hello world", 4);     // 返回值,从第4位截取到字符串末尾 : o wrold
StringUtils.substring("hello world", 4, 10); // 返回值,从第4位截取到第10位    : o wrol

//截取某个字符串之前的字符
StringUtils.substringBefore("hello world", "l"); //结果是:he    这里是以第一个“l”为标准
StringUtils.substringBeforeLast("hello world", "l"); //结果为:hello wor   这里以最后一个“l”为标准

//截取某个字符串之后的字符
StringUtils.substringAfter("hello world", "l"); //结果是:lo world    这里是以第一个“l”为标准
StringUtils.substringAfterLast("hello world", "l"); //结果为:d       这里以最后一个“l”为标准

//截取两个字符串之间的字符
StringUtils.substringBetween("hello world", "o"); //结果是: w   两个o之间的字符串   
StringUtils.substringBetween("hello world", "l", "r"); //结果是: lo wo   第一个字符“l”与第一个字符“r”之间的字符串   
StringUtils.substringsBetween("hello world", "l", "r"); //结果是: 数组 [lo wo]   第一个字符“l”与第一个字符“r”之间的字符串,以数组形式返回,需要用Arrays.toString()才能显示[lo wo],不然是地址值。

五、indexOf()

1.indexOf(int ch) 在给定字符串中查找字符(ASCII),找到返回字符数组所对应的下标找不到返回-1
2.indexOf(String str)在给定符串中查找另一个字符串。。。返回下标
3.indexOf(int ch,int fromIndex)从指定的下标开始查找某个字符,查找到返回下标,查找不到返回-1
4.indexOf(String str,int fromIndex)从指定的下标开始查找某个字符串。。。返回下标

public class Test {
    
    
 
    public static void main(String[] args) {
    
    
        char[] ch= {
    
    'a','b','c','h','e','l','l','o'};
        String str=new String(ch);
 
        //1.indexOf(int ch)
        str.indexOf(104);
        System.out.println(str.indexOf(104));//h所在下标为3
 
        //2.indexOf(String str)
        str.indexOf("hell");
        System.out.println(str.indexOf("hell"));//3
 
        //3.indexOf(int ch,int fromIndex)
        str.indexOf(101, 4);//4
        System.out.println(str.indexOf(101, 4));
        str.indexOf(101,5);//没有查找到返回-1
        System.out.println(str.indexOf(101,5));
 
        //4.indexOf(String str,int fromIndex)
        str.indexOf("che", 0);//等价于str.indexOf("che")
        System.out.println(str.indexOf("che", 0));//2
    }
}

JS截取字符串相关的函数:

一、split():

功能:使用一个指定的分隔符把一个字符串分割存储到数组

str=”jpg|bmp|gif|ico|png”; 
arr=theString.split(|); 
//arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组 

二、join():

功能:使用分隔符将一个数组合并为一个字符串

var delimitedString=myArray.join(delimiter); 
var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”); 
var portableList=myList.join(|); 
//结果是jpg|bmp|gif|ico|png 

三、indexOf():

功能:返回字符串中匹配子串的第一个字符的下标

var myString=JavaScript; 
var w=myString.indexOf(”v”);                        //w will be 2 
var x=myString.indexOf(S);                        //x will be 4 
var y=myString.indexOf(Script);                   //y will also be 4 
var z=myString.indexOf(”key”);                      //z will be -1 

四、substring():

功能:字符串截取,用于提取字符串中介于两个指定下标之间的字符,比如想从"MinidxSearchEngine”中得到"Minidx”就要用到substring(0,6)
语法 :stringObject.substring(start,stop)
参数 :start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject中的位置。
stop可选。一个非负的整数,比要提取的子串的最后一个字符在stringObject中的位置多 1。
如果省略该参数,那么返回的子串会一直到字符串的结尾。
返回值: 一个新的字符串,该字符串值包含 stringObject的一个子字符串,
其内容是从start处到 stop-1 处的所有字符,其长度为 stop减 start。
说明 :substring 方法返回的子串包括 start处的字符,但不包括 end 处的字符。 如果start与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
如果 start比 end大,那么该方法在提取子串之前会先交换这两个参数。 如果 start或end为负数,那么它将被替换为 0。

五、substr():

定义和用法:substr方法用于返回一个从指定位置开始的指定长度的子字符串。
语法:stringObject.substr(start [, length ])
参数:start 必需。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length可选。在返回的子字符串中应包括的字符个数。
说明: 如果 length 为 0 或负数,将返回一个空字符串。
如果没有指定该参数,则子字符串将延续到stringObject的最后。

var str = "0123456789"; 

alert(str.substring(0));------------"0123456789" 
alert(str.substring(5));------------"56789" 
alert(str.substring(10));-----------"" 
alert(str.substring(12));-----------"" 
alert(str.substring(-5));-----------"0123456789" 
alert(str.substring(-10));----------"0123456789" 
alert(str.substring(-12));----------"0123456789" 
alert(str.substring(0,5));----------"01234" 
alert(str.substring(0,10));---------"0123456789" 
alert(str.substring(0,12));---------"0123456789" 
alert(str.substring(2,0));----------"01" 
alert(str.substring(2,2));----------"" 
alert(str.substring(2,5));----------"234" 
alert(str.substring(2,12));---------"23456789" 
alert(str.substring(2,-2));---------"01" 
alert(str.substring(-1,5));---------"01234" 
alert(str.substring(-1,-5));--------"" 

alert(str.substr(0));---------------"0123456789" 
alert(str.substr(5));---------------"56789" 
alert(str.substr(10));--------------"" 
alert(str.substr(12));--------------"" 
alert(str.substr(-5));--------------"0123456789" 
alert(str.substr(-10));-------------"0123456789" 
alert(str.substr(-12));-------------"0123456789" 
alert(str.substr(0,5));-------------"01234" 
alert(str.substr(0,10));------------"0123456789" 
alert(str.substr(0,12));------------"0123456789" 
alert(str.substr(2,0));-------------"" 
alert(str.substr(2,2));-------------"23" 
alert(str.substr(2,5));-------------"23456" 
alert(str.substr(2,12));------------"23456789" 
alert(str.substr(2,-2));------------"" 
alert(str.substr(-1,5));------------"01234" 
alert(str.substr(-1,-5));-----------"" 

var t=window.location.href.split("/").length-1;
//将当前页面的URL以“/”分割,并获取所得数组的长度减1的数值(刚好是数组最后一个元素的索引值)
var str=window.location.href.split("/")[t].substr(0,4);
//截取数组最后一个元素中第一位到第五位的字符串

猜你喜欢

转载自blog.csdn.net/m0_46459413/article/details/130824237
今日推荐