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的BiMap:雙向MapGoGuava
- google guava集合之MultisetGoGuava
- Google guava原始碼之EventBusGoGuava原始碼
- Google Guava Stopwatch(計時器)GoGuava
- Google Guava 在實際場景中的應用封裝GoGuava封裝
- Google guava工具類的介紹和使用GoGuava
- Google Guava官方教程(中文版)GoGuava
- Git分支的定義和操作Git
- google Guava包RateLimiter使用最佳實踐GoGuavaMIT
- 使用Google Guava快樂程式設計GoGuava程式設計
- 103-字串的定義和操作字串
- 使用Java和Google Guava簡化開發JavaGoGuava
- 事務基本定義操作
- 定義製造業操作(定義 MES/MOM 系統)
- 使用Guava的ComparisonChain實現自定義的排序GuavaAI排序
- 不懂OT的列表定義操作的規則
- mysql 儲存過程中變數的定義與賦值操作MySql儲存過程變數賦值
- C++中string字串的基礎操作,學習C++字串
- Java中的字串操作(比較String,StringBuiler和StringBuffer)Java字串UI
- Guava中的Joiner和SplitterGuava
- php操作string的函式PHP函式
- Guava中這些Map的騷操作,讓我的程式碼量減少了50%Guava
- C++ 額外的 string 操作C++
- Python騷操作:動態定義函式Python函式
- 模型的列表定義中,使用函式時如何定義引數?模型函式
- Java記憶體快取-通過Google Guava建立快取Java記憶體快取GoGuava
- String/StringBuilder字串拼接操作UI字串
- String不同定義的情況解析
- 原始碼|String拼接操作”+”的優化?原始碼優化
- iOS中的StringiOS
- 限流原理解讀之guava中的RateLimiterGuavaMIT
- Linux中chmod命令的定義及作用!Linux
- Shell中函式的定義和使用函式
- C++中巨集定義#define的用法C++
- 4.JNI: 操作字串String字串
- Mysql資料庫自定義函式的定義、使用方法及操作注意事項MySql資料庫函式
- shell 中怎麼定義常量