<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [Splitter](http://www.iteblog.com/archives/tag/splitter "查看 Splitter 中的全部文章"):在[Guava](http://www.iteblog.com/archives/tag/guava "查看 Guava 中的全部文章")官方的解釋為:Extracts?non-overlapping?substrings?from?an?input?string,?typically?by?recognizing?appearances?of?a?separator?sequence.?This?separator?can?be?specified?as?a?single?[character](#),?fixed?[string](#),?[regular?expression](#)?or?[CharMatcher](#)?instance.?Or,?instead?of?using?a?separator?at?all,?a?splitter?can?extract?adjacent?substrings?of?a?given?[fixed?length](#). 從輸入的字符串中抽取不重復的子串,通常是分析給定的分割序列;這個分割符可以是單個的字符(on(char?separator))、字符串(on(final?String?separator))、正則表達式(on(final?Pattern?separatorPattern))或者是一個[CharMatcher](#)實例(on(final?CharMatcher?separatorMatcher))。當然,也可以不傳入分隔符(fixedLength(final?int?length)),從而將給定的字符串分割為長度為length的子字符串。 比如:[Splitter](http://www.iteblog.com/archives/tag/splitter "查看 Splitter 中的全部文章").on(‘,’).split(“foo,bar,qux”),返回的結果是Iterable接口類型的數據,內容為foo,bar,qux,并且分割得到的子字符串順序和其在規定字符串中出現的順序是一致的。 通常,[Splitter](http://www.iteblog.com/archives/tag/splitter "查看 Splitter 中的全部文章")的行為是很簡單的,并且毫無假設性,如果你有以下的語句Splitter.on(‘,’).split(“?foo,,,?bar?,”),那么得出來的子字符串序列為?["?foo",?"",?"",?"?bar?",?""],其中包含了空的字符串,這可能不是我們需要的,可以通過Splitter類中的trimResults()方法去掉子串的空格,以及omitEmptyStrings()方法去掉空的子串。運行之后的結果為["foo",?"bar"]。 需要注意的:Splitter對象是immutable的,所以在你為Splitter對象添加配置方的時候,你必須用一個新的Splitter對象去接收,如下: ~~~ public?static?Iterable<String>?test(){   //?Do?NOT?do?this   Splitter?splitter?=?Splitter.on('/');   splitter.trimResults();?//?does?nothing!   return?splitter.split("wrong?/?wrong?/?wrong"); } ~~~ 得到的結果是[wrong?,??wrong?,??wrong],可以看出,對splitter對象配置的trimResults()方法并沒有對下面的結果起到作用。 Splitter類還提供了[limit](#)(int?limit)方法,當分割的子字符串達到了limit個時,則停止分割,如下: Splitter.on(‘,’).limit(3).split(“a,b,c,d”)?結果為["a",?"b",?"c,d"] 當需要去掉空的子字符串時,這個空的子字符串是不記入到limit中的,如下: Splitter.on(‘,’).limit(3).omitEmptyStrings().split(“a,,,b,,,c,d”)結果為?["a",?"b",?"c,d"] Splitter可以用指定的分隔符來分割給定的字符串,和[Java](http://www.iteblog.com/archives/tag/java "查看 Java 中的全部文章")中String類中的split()相比,Splitter更加靈活:   (1)、Splitter可以支持單個字符、字符串、正則表達式或者[CharMatcher](#)實例來分割給定的字符串,而String類中的split()方法只支持用正則表達式來分割給定的字符串,用途很有限。   (2)、我們都知道,用正則表達式來分割字符串的效率很低,對于大量的字符串分割如果用String類中的split()方法勢必影響程序的效率,建議使用Splitter類提供的方法。   (3)、String類中的split()方法返回的是String數組類型,而Splitter類返回的是Iterator類型的接口,可以直接用在集合中(Lists.newArrayList(Splitter.on(‘,’).split(“_a ,_b_,c__”));)   (4)、Splitter類用了GwtCompatible注釋,它是[Google](http://www.iteblog.com/archives/tag/google "查看 Google 中的全部文章")?Web Toolkit(GWT)兼容的。   (5)、我們還可以通過Splitter類中的trimResults()方法去掉子串中的空格,以及omitEmptyStrings()方法去掉空的子串,大大簡化了用戶的使用。 ? ? ? ?   (6)、Splitter類可以在結果中繼續分割,比如:Map<String,String> split = Splitter.on(‘;’).trimResults().withKeyValueSeparator(“=”).split(“a=2;b=3″); 直接返回Map的鍵值對,這比String中的split方法強大多了,很值得用。 **轉載請注明: 轉載自[過往記憶(http://www.iteblog.com/)](http://www.iteblog.com/) 本文鏈接地址:?[Guava學習之Splitter(http://www.iteblog.com/archives/684)](http://www.iteblog.com/archives/684)** [](http://www.iteblog.com/archives/684)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看