Guava入门~Splitter


String.split()问题:中间保留,最后丢弃

String commaSeparatedString  = "Foo,,Bar,,Baz,,,";
String[] words = commaSeparatedString.split(",");
//[Foo, , Bar, , Baz]
System.out.println(Arrays.toString(words));

演示

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));}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++学习之路 | PTA乙级—— 1038 统计同成绩学生 (20 分)(精简)

1038 统计同成绩学生 (20 分) 本题要求读入 N 名学生的成绩&#xff0c;将获得某一给定分数的学生人数输出。 输入格式&#xff1a; 输入在第 1 行给出不超过 10 ​5 ​​ 的正整数 N&#xff0c;即学生总人数。随后一行给出 N 名学生的百分制整数成绩&#xff0c;中间以空格分…

frame或者iframe的contentwindow属性

contentwindow属性是指指定的frame或者iframe所在的window对象&#xff1a; <script> function fnnavigate() { for(i0;i<document.all.length;i) { if(document.all(i).tagname"iframe") { document.all(i).contentwindow.location "http://www.msn.…

C++学习之路 | PTA乙级—— 1039 到底买不买 (20 分)(精简)

1039 到底买不买 (20 分) 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串&#xff0c;但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下&#xff0c;某串珠子里是否包含了全部自己想要的珠子&#xff1f;如果是&#xff0c;那么告诉她有多少多…

Yoshua Bengio团队最新强化学习研究:智能体通过与环境交互,「分离」变化的独立可控因素

原文来源&#xff1a;arXiv作者&#xff1a;Valentin Thomas、Emmanuel Bengio∗、William Fedus、Jules Pondard、Philippe Beaudoin、Hugo Larochelle、Joelle Pineau、Doina Precup、Yoshua Bengio「雷克世界」编译&#xff1a;嗯~阿童木呀人们普遍认为&#xff0c;一个良好…

supervisor安装和配置

supervisor 是由python语言编写、基于linux操作系统的一款服务器管理工具&#xff0c;用以监控服务器的运行&#xff0c;发现问题能立即自动预警及自动重启等功能。 Supervisor是一个进程管理工具&#xff0c;官方的说法 用途就是有一个进程需要每时每刻不断的跑&#xff0c;但…

Guava入门~Strings

import org.hamcrest.CoreMatchers; import org.junit.Assert; import com.google.common.base.Strings;/*** TODO 在此写上类的相关说明.<br>* author gqltt<br>* version 1.0.0 2021年11月11日<br>* see * since JDK 1.5.0*/ public class StringsDemo {/*…

六级没过

很不幸&#xff0c;六级没过&#xff0c;有点失落&#xff0c;想找块豆腐撞。 转载于:https://www.cnblogs.com/prayforsmile/archive/2008/03/04/1090604.html

斯坦福联合DeepMind提出将「强化学习和模仿学习」相结合,可实现多样化机器人操作技能的学习

原文来源&#xff1a;arXiv作者&#xff1a;Yuke Zhu、Ziyu Wang、Josh Merel、Andrei Rusu、Tom Erez、Serkan Cabi、Saran Tunyasuvunakool、Janos Kram ar、Raia Hadsell、Nando de Freitas、Nicolas Heess「雷克世界」编译&#xff1a;嗯~阿童木呀我们提出了一种无模型的深…

C++学习之路 | PTA乙级—— 1024 科学计数法 (20 分)(精简)

1024 科学计数法 (20 分) 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法&#xff0c;其满足正则表达式 [][1-9].[0-9]E[][0-9]&#xff0c;即数字的整数部分只有 1 位&#xff0c;小数部分至少有 1 位&#xff0c;该数字及其指数部分的正负号即使对正数也必定明…

Guava入门~CharMatcher

import org.hamcrest.CoreMatchers; import org.junit.Assert; import com.google.common.base.CharMatcher;/*** TODO 在此写上类的相关说明.<br>* author gqltt<br>* version 1.0.0 2021年11月11日<br>* see * since JDK 1.5.0*/ public class CharMatcher…

用人不疑,疑人不用

用人不疑&#xff0c;疑人不用&#xff0c;这句古训是否正确呢&#xff1f;现在的社会也许有很多人认为已经不在适用了&#xff0c;不过我们看待问题还是一分为二&#xff0c;我觉得有不适用的理由&#xff0c;也有适用的理由。不适用的理由&#xff0c;搜索一下太多了&#xf…

大型传统企业如何向人工智能转型?

来源&#xff1a;FT中文网在新一波技术浪潮的冲击下&#xff0c;以AI、大数据、云计算、物联网、5G通信等一系列技术为代表的“技术簇”所引发的革命对人类社会的影响将是全面且深刻的。每一个商业单元都面对这样的机遇&#xff1a;能否通过对新技术的运用&#xff0c;为客户创…

C++学习之路 | PTA乙级—— 1034 有理数四则运算 (20 分)(精简)

1034 有理数四则运算 (20 分) 本题要求编写程序&#xff0c;计算 2 个有理数的和、差、积、商。 输入格式&#xff1a; 输入在一行中按照 a1/b1 a2/b2 的格式给出两个分数形式的有理数&#xff0c;其中分子和分母全是整型范围内的整数&#xff0c;负号只可能出现在分子前&…

linux 下载 命令 wget 和 curl

From&#xff1a;http://www.jb51.net/LINUXjishu/86326.html From &#xff1a;Linux curl 命令详解 - http://www.cnblogs.com/duhuo/p/5695256.html Linux curl 命令参数详解&#xff1a;http://www.aiezu.com/system/linux/linux_curl_syntax.html Linux下使用 curl &…

sql server存储过程中解决单引号的问题

一&#xff1a;目的想在sql中插入号&#xff0c;例如&#xff1a;select count&#xff08;*&#xff09;from user where nametoma)使用转义字符&#xff1a;select char(39)或select char(39)查询的结果是&#xff1a;例如&#xff1a;select char(39) 44555 char(39)查询的…

Guava入门~Charsets

import java.io.UnsupportedEncodingException; import org.hamcrest.CoreMatchers; import org.junit.Assert; import com.google.common.base.Charsets;/*** TODO 在此写上类的相关说明.<br>* author gqltt<br>* version 1.0.0 2021年11月11日<br>* see * …

无人驾驶推进时间表及五大技术领域关键节点

来源&#xff1a;莫尼塔财新智库摘要&#xff1a;本文援引莫尼塔财新智库的一篇研究&#xff0c;系统梳理了无人驾驶各关键技术节点以及其成熟时间。”“汽车技术发展到如今&#xff0c;几乎没有人质疑无人驾驶会成为汽车行业变革的巨大浪潮&#xff0c;然而对于各项技术落地的…

C++学习之路 | PTA乙级—— 1040 有几个PAT (25 分)(精简)

1040 有几个PAT (25 分) 字符串 APPAPT 中包含了两个单词 PAT&#xff0c;其中第一个 PAT 是第 2 位&#xff0c;第 4 位(A)&#xff0c;第 6 位(T)&#xff1b;第二个 PAT 是第 3 位&#xff0c;第 4 位(A)&#xff0c;第 6 位(T)。 现给定字符串&#xff0c;问一共可以形成多…

linux sed 命令详解

参考&#xff1a;http://www.cnblogs.com/ctaixw/p/5860221.html sed 常用选项 和 常用命令 sed 是一个很好的文件处理工具&#xff0c;本身是一个管道命令&#xff0c;主要是 以行为单位 进行处理&#xff0c;可以将数据行进行替换、删除、新增、选取等特定工作。 sed 的用法 …

背景和弹出 Panel 都带有动画效果的 modal 效果

微软Ajax control toolKit 中有 ModalPopup 控件。可以实现页面遮盖的效果。但是遮盖直接出现&#xff0c;十分突然。我想能不能加上渐变的效果&#xff1f;这样感觉会好一点&#xff0c;炫一点。于是又想如果弹出的对话框(Panel)也有动画效果就会更炫了。于是就有了 Animation…