Guava入门~Splitter
生活随笔
收集整理的這篇文章主要介紹了
Guava入门~Splitter
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
String.split()問題:中間保留,最后丟棄
演示
import java.util.Map; import org.hamcrest.CoreMatchers; import org.junit.Assert; import com.google.common.base.CharMatcher; import com.google.common.base.Splitter; import com.google.common.collect.Maps;/*** TODO 在此寫上類的相關說明.<br>* @author gqltt<br>* @version 1.0.0 2021年11月11日<br>* @see * @since JDK 1.5.0*/ public class SplitterDemo {/*** @param args*/public static void main(String[] args) {splitOnCharacter();splitOnString();splitPattern();splitTrimEmpty();splitTrimDigit();splitKeepMissing();splitOmitMissing();}/*** 按字符切割.*/static void splitOnCharacter() {char delimiter = '|';String text = "foo|bar|baz";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(delimiter).split(text);int index = 0;for (String value : values) {Assert.assertThat(value, CoreMatchers.is(expected[index++]));}}/*** 按字符串切割.*/static void splitOnString() {String delimiter = "&";String text = "foo&bar&baz";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(delimiter).split(text);int index = 0;for (String value : values) {Assert.assertThat(value, CoreMatchers.is(expected[index++]));}}/*** 按正則表達式切割.*/static void splitPattern() {String pattern = "\\d+";String text = "foo123bar45678baz";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.onPattern(pattern).split(text);int index = 0;for (String value : values) {Assert.assertThat(value, CoreMatchers.is(expected[index++]));}}/*** 裁剪空串.*/static void splitTrimEmpty() {String delimiter = "&";String text = "foo & bar& baz ";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(delimiter).trimResults().split(text);int index = 0;for (String value : values) {Assert.assertThat(value, CoreMatchers.is(expected[index++]));}}/*** 裁剪數字.*/static void splitTrimDigit(){String delimiter = "&";String text = "1foo&bar2&2baz3";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(delimiter).trimResults(CharMatcher.javaDigit()).split(text);int index = 0;for (String value : values) {Assert.assertThat(value, CoreMatchers.is(expected[index++]));}}/*** 保留空串.*/static void splitKeepMissing(){char delimiter = '|';String text = "foo|bar|||baz";String[] expected = new String[]{"foo","bar","","","baz"};Iterable<String> values = Splitter.on(delimiter).split(text);int index = 0;for (String value : values) {Assert.assertThat(value, CoreMatchers.is(expected[index++]));}}/*** 省略空串.*/static void splitOmitMissing() {char delimiter = '|';String text = "foo|bar|||baz";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(delimiter).omitEmptyStrings().split(text);int index = 0;for (String value : values) {Assert.assertThat(value, CoreMatchers.is(expected[index++]));}}/*** 切割成map.*/static void splitMap() {String startSring = "Washington D.C=Redskins#New York City=Giants#Philadelphia=Eagles#Dallas=Cowboys";Map<String,String> testMap = Maps.newLinkedHashMap();testMap.put("Washington D.C","Redskins");testMap.put("New York City","Giants");testMap.put("Philadelphia","Eagles");testMap.put("Dallas","Cowboys");Splitter.MapSplitter mapSplitter = Splitter.on("#").withKeyValueSeparator("=");Map<String,String> splitMap = mapSplitter.split(startSring);Assert.assertThat(testMap, CoreMatchers.is(splitMap));} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Guava入门~Splitter的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java并发编程实战~ReadWrite
- 下一篇: 计算机术语局部性,【计算机基础】程序的局