java中string的split處理

1、java.lang.String中的split(String regex),其中參數是正則表達式。如果不懂正則表達式,可以用以下方法:

org.apache.commons.lang.StringUtils提供的split改變了這一狀況,開始使用完整的字符串作爲參數,而不是regex。同時,對類似功能的jdk版本的StringTokenizer,在內部方法splitWorker中有段註釋:Direct code is quicker than StringTokenizer.也就是說,這個是更快的一個工具了~~

在maven中使用時,只需要在pom.xml中加入如下,

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.0</version>
    </dependency>

然後在java代碼中,

import org.apache.commons.lang3.StringUtils;
StringUtils.split(where,"=>+-*/<()");
ok了。

2、

但說明的一點是其實用正則表達式非常方便,可以解決許多有難度的問題。

比如希望以逗號(,)分割一個字符傳,但是希望保持字符串中的" "引用起來的內容不被分割,可以用:

sentence.split("[,]+(?=(?:[^\\\"]*\\\"[^\\\"]*\\\")*[^\\\"]*$)");

來表示。

如果希望" "和' '引用的內容都不被分割,可以用:

sentence.split("[,]+(?=(?:[^'\"]|'[^']*'|\"[^\"]*\")*$)");

來處理。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章