眾所周知,java提供了很多字符串截取的方式。下面就來看看大致有幾種。
1.split()+正則表達(dá)式來進(jìn)行截取。
將正則傳入split()。返回的是一個(gè)字符串?dāng)?shù)組類型。不過通過這種方式截取會(huì)有很大的性能損耗,因?yàn)榉治稣齽t非常耗時(shí)。
String str = "abc,12,3yy98,0"; String[] strs=str.split(","); for(int i=0,len=strs.length;i<len;i++){ System.out.println(strs[i].toString()); }
運(yùn)行結(jié)果:
abc 12 3yy98 0
2.通過subString()方法來進(jìn)行字符串截取。
subString通過不同的參數(shù)來提供不同的截取方式
2.1只傳一個(gè)參數(shù)
例如:
String sb = "bbbdsajjds"; sb.substring(2);
將字符串從索引號(hào)為2開始截取,一直到字符串末尾。(索引值從0開始);
2.2傳入2個(gè)索引值
String sb = "bbbdsajjds"; sb.substring(2, 4);
從索引號(hào)2開始到索引好4結(jié)束(并且不包含索引4截取在內(nèi),也就是說實(shí)際截取的是2和3號(hào)字符);
運(yùn)行結(jié)果如下:
bdsajjds bd
var str="Hello world!"
document.write(str.substring(1,3));
上面返回字符串:"el";
str.substring(1,2) //返回e
str.substring(1) //返回"ello world";
還有此函數(shù)中會(huì)出現(xiàn)奇怪的現(xiàn)象,當(dāng)出現(xiàn)str.substring(5,0);
這又是怎么回事,不過返回的是"hello",
str.substring(5,1) //返回"ello",截去了第一位,返回余下的.
可見substring(start,end),可以有不同的說明,即start可以是要返回的長度,end是所要去掉的多少個(gè)字符(從首位開始).
在JS中,substr(start,length),用得較方便.
舉例:
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));-----------""
3.通過StringUtils提供的方法
StringUtils.substringBefore(“dskeabcee”, “e”);
/結(jié)果是:dsk/
這里是以第一個(gè)”e”,為標(biāo)準(zhǔn)。
StringUtils.substringBeforeLast(“dskeabcee”, “e”)
結(jié)果為:dskeabce
這里以最后一個(gè)“e”為準(zhǔn)。
如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答!! 點(diǎn)擊進(jìn)入論壇