google guava中定義的String操作
google guava中定義的String操作
轉載:http://outofmemory.cn/java/guava/base/Strings
介紹google guava對字串操作的封裝,包括判斷字串是否為空,取字串的相同字首,字尾,以及補全字串;連線字串,拆分字串等常用的字串的操作。
在google guava中為字串操作提供了很大的便利,有老牌的判斷字串是否為空字串或者為null,用指定字元填充字串,以及拆分合並字串,字串匹配的判斷等等。
下面我們逐一瞭解這些操作:
1. 使用com.google.common.base.Strings類的isNullOrEmpty(input)方法判斷字串是否為空
//Strings.isNullOrEmpty(input) demo
String input = "";
boolean isNullOrEmpty = Strings.isNullOrEmpty(input);
System.out.println("input " + (isNullOrEmpty?"is":"is not") + " null or empty.");
2. 獲得兩個字串相同的字首或者字尾
//Strings.commonPrefix(a,b) demo
String a = "com.jd.coo.Hello";
String b = "com.jd.coo.Hi";
String ourCommonPrefix = Strings.commonPrefix(a,b);
System.out.println("a,b common prefix is " + ourCommonPrefix);
//Strings.commonSuffix(a,b) demo
String c = "com.google.Hello";
String d = "com.jd.Hello";
String ourSuffix = Strings.commonSuffix(c,d);
System.out.println("c,d common suffix is " + ourSuffix);
3. Strings的padStart和padEnd方法來補全字串
int minLength = 4;
String padEndResult = Strings.padEnd("123", minLength, '0');
System.out.println("padEndResult is " + padEndResult);
String padStartResult = Strings.padStart("1", 2, '0');
System.out.println("padStartResult is " + padStartResult);
4. 使用Splitter類來拆分字串
Splitter類可以方便的根據正規表示式來拆分字串,可以去掉拆分結果中的空串,可以對拆分後的字串做trim操作,還可以做二次拆分。
我們先看一個基本的拆分例子:
Iterable<String> splitResults = Splitter.onPattern("[,,]{1,}")
.trimResults()
.omitEmptyStrings()
.split("hello,word,,世界,水平");
for (String item : splitResults) {
System.out.println(item);
}
Splitter的onPattern方法傳入的是一個正規表示式,其後緊跟的trimResults()方法表示要對結果做trim,omitEmptyStrings()表示忽略空字串,split方法會執行拆分操作。
split返回的結果為Iterable<String>,我們可以使用for迴圈語句來逐個列印拆分字串的結果。
Splitter還有更強大的功能,做二次拆分,這裡二次拆分的意思是拆分兩次,例如我們可以將a=b;c=d這樣的字串拆分成一個Map<String,String>。
String toSplitString = "a=b;c=d,e=f";
Map<String,String> kvs = Splitter.onPattern("[,;]{1,}").withKeyValueSeparator('=').split(toSplitString);
for (Map.Entry<String,String> entry : kvs.entrySet()) {
System.out.println(String.format("%s=%s", entry.getKey(),entry.getValue()));
}
二次拆分首先是使用onPattern做第一次的拆分,然後再通過withKeyValueSeperator('')方法做第二次的拆分。
5. 有拆分字串必然就有合併字串,guava為我們提供了Joiner類來做字串的合併
我們先看一個簡單的示例:
String joinResult = Joiner.on(" ").join(new String[]{"hello","world"});
System.out.println(joinResult);
上面例子中我們使用Joiner.on(" ").join(xx)來合併字串。很簡單也很有效。
Splitter方法可以對字串做二次的拆分,對應的Joiner也可以逆向操作,將Map<String,String>做合併。我們看下下面的例子:
Map<String,String> map = new HashMap<String,String>();
map.put("a", "b");
map.put("c","d");
String mapJoinResult = Joiner.on(",").withKeyValueSeparator("=").join(kvs);
System.out.println(mapJoinResult);
使用withKeyValueSeparator方法可以對map做合併。合併的結果是:a=b,c=d
guava庫中還可以對字串做大小寫轉換(CaseFormat列舉),可以對字串做模式匹配。使用起來都很方便,就不一一介紹了。
相關文章
- [Guava] Google Guava 集合工具類GuavaGo
- 《Google Guava—集合篇》GoGuava
- google guava的BiMap:雙向MapGoGuava
- google guava集合之MultisetGoGuava
- (翻譯)Google Guava CacheGoGuava
- Google Guava 使用者指南 —- 初始Guava類庫GoGuava
- Google Guava 在實際場景中的應用封裝GoGuava封裝
- Google guava原始碼之EventBusGoGuava原始碼
- Google guava工具類的介紹和使用GoGuava
- Google Guava Stopwatch(計時器)GoGuava
- Google Guava官方教程(中文版)GoGuava
- Git分支的定義和操作Git
- 5個 Google Guava 鮮為人知的特性GoGuava
- 使用Google Guava快樂程式設計GoGuava程式設計
- google Guava包RateLimiter使用最佳實踐GoGuavaMIT
- 事務基本定義操作
- 定義製造業操作(定義 MES/MOM 系統)
- 使用Java和Google Guava簡化開發JavaGoGuava
- Guava中的Joiner和SplitterGuava
- 103-字串的定義和操作字串
- mysql 儲存過程中變數的定義與賦值操作MySql儲存過程變數賦值
- 不懂OT的列表定義操作的規則
- 使用Guava的ComparisonChain實現自定義的排序GuavaAI排序
- Guava中這些Map的騷操作,讓我的程式碼量減少了50%Guava
- C++中string字串的基礎操作,學習C++字串
- Python中類的定義Python
- 理解Javascript中類的定義JavaScript
- jquery 定義物件並進行操作jQuery物件
- php中定義類PHP
- 模型的列表定義中,使用函式時如何定義引數?模型函式
- oracle中關於null的定義OracleNull
- php操作string的函式PHP函式
- 限流原理解讀之guava中的RateLimiterGuavaMIT
- sqlplus中define定義的常量和variable定義的變數的區別!SQL變數
- Shell中函式的定義和使用函式
- C++中巨集定義#define的用法C++
- 在python中定義[]呼叫的方法Python
- Oracle中重建表的線上重定義Oracle