关于split与StringTokenizer的理解
關(guān)于split與StringTokenizer的理解
一.split
?? 依據(jù)匹配給定的正則表達(dá)式來拆分此字符串。此方法返回的數(shù)組包括此字符串的子字符串,每一個子字符串都由還有一個匹配給定表達(dá)式的子字符串終止,或者由此字符串末尾終止。數(shù)組中的子字符串按它們在此字符串中出現(xiàn)的順序排列。假設(shè)表達(dá)式不匹配輸入的不論什么部分,那么所得數(shù)組僅僅具有一個元素,即此字符串。
?
?? String[] split(String regex,int limit)此方法的運(yùn)用在API中得非常具體.
limit 參數(shù)控制模式應(yīng)用的次數(shù),因此影響所得數(shù)組的長度。假設(shè)該限制 n 大于 0,則模式將被最多應(yīng)用 n?-?1 次,數(shù)組的長度將不會大于 n,并且數(shù)組的最后一項(xiàng)將包括全部超出最后匹配的定界符的輸入。假設(shè) n 為非正,那么模式將被應(yīng)用盡可能多的次數(shù),并且數(shù)組能夠是不論什么長度。假設(shè) n 為 0,那么模式將被應(yīng)用盡可能多的次數(shù),數(shù)組能夠是不論什么長度,并且結(jié)尾空字符串將被丟棄。
比如,字符串 "boo:and:foo" 使用這些參數(shù)可生成下面結(jié)果:
| : | 2 | { "boo", "and:foo" } |
| : | 5 | { "boo", "and", "foo" } |
| : | -2 | { "boo", "and", "foo" } |
| o | 5 | { "b", "", ":and:f", "", "" } |
| o | -2 | { "b", "", ":and:f", "", "" } |
| o | 0 | { "b", "", ":and:f" } |
調(diào)用此方法的 str.split(regex,?n) 形式與下面表達(dá)式產(chǎn)生的結(jié)果全然同樣:
?????? Pattern.compile(regex).split(str,?n)
?對于字符串的切割處理使用split是想當(dāng)方便的...
二.StringTokenizer
?? stringtokenizer 類同意應(yīng)用程序?qū)⒆址纸鉃闃?biāo)記。在該類中包括了幾個重要的方法.
???int CountTokens()??計(jì)算在生成異常之前能夠調(diào)用此 tokenizer 的 nextToken 方法的次數(shù)。
???boolean hasMoreElements()返回與 hasMoreTokens 方法同樣的值。
?? boolean hasMoreTokens()測試此 tokenizer 的字符串中是否還有很多其它的可用標(biāo)記。
???Object nextElement()除了其聲明返回值是 Object 而不是 String 之外,它返回與 nextToken 方法同樣的值。
?? String nextToken()返回此 string tokenizer 的下一個標(biāo)記。
?
?
??? StringTokenizer 是出于兼容性的原因而被保留的遺留類(盡管在新代碼中并不鼓舞使用它)。建議全部尋求此功能的人使用 String 的 split 方法或java.util.regex 包。
?
三.一個面試題
?? 對一個字符串,單詞之間以空格切割,試以單詞為單位反序打印(如:I Love China結(jié)果為:China Love I)
?
?? 做的細(xì)想通常是將該字符串中的每一個單詞保存在String[]里然后反序打印,這里就須要字符串切割的方法了...
?? 使用split:
??? 使用StringTokenizer:
?
轉(zhuǎn)載于:https://www.cnblogs.com/hrhguanli/p/4008063.html
總結(jié)
以上是生活随笔為你收集整理的关于split与StringTokenizer的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP 5.4 on CentOS/RH
- 下一篇: 如何下载斗鱼回放视频(纯手工)