Guava Joiner 无法添加前缀和后缀[重复]

2024-05-05

我要求 Joiner 能够为元素添加前缀和后缀。

例如

String str[] = {"a", "b", "c"};
Joiner.on(",").prefix("'").suffix("'").join(str);

预期输出为:

'a','b','c'

我们有什么替代方案吗?因为番石榴不这样做(或者我不知道)。 java 8 有更好的选择吗?


你可以使用番石榴List#transform进行转变a --> 'a'然后使用Joiner在转换后的列表上。transform仅适用于Iterable但对象不在数组上。代码仍然足够简洁:

List<String> strList = Lists.newArraylist(str); // where str is your String[]
Joiner.on(',').join(Lists.transform(str, surroundWithSingleQuotes));

其中变换如下:

Function<String, String> surroundWithSingleQuotes = new Function<String, String>() {
    public String apply(String string) {
        return "'" + string + "'";
    }
};

有人可能会说这是一种冗长的方法,但我很欣赏transform范例。

编辑(因为现在有 Java 8)

在 Java 8 中,所有这些都可以使用以下命令在一行中完成Stream http://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html界面如下:

strList.stream().map(s -> "'" + s + "'").collect(Collectors.joining(","));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Guava Joiner 无法添加前缀和后缀[重复] 的相关文章

随机推荐

  • Radio r = Radio("PSR", 100.8) 和 Radio("PSR", 100.8) 有什么区别? [复制]

    这个问题在这里已经有答案了 我是 C 新手 正在尝试理解一些东西 我的 main cpp 中有这段代码 Radio r Radio PSR 100 8 或该代码 Radio r PSR 100 8 两者似乎都有效并且做同样的事情 那么有什么
  • 在 Javascript 中设置多个 cookie

    我正在尝试设置多个 cookiedocument cookie 但不幸的是只有一个被添加 我知道网上有多个设置此类 cookie 的示例 我遵循了其中之一 但我仍然无法解决这个问题 我跟着这个link http www elated com
  • 使用geom_sf时向ggplot2添加多个图例

    我的问题结合了之前在 Stackoverflow 上发布的两个单独的问题 向 ggplot 添加多个图例 https stackoverflow com questions 26443371 adding multiple legends
  • 在 v8 中向全局对象原型添加函数模板

    在V8中 我想通过添加一些函数来修改全局内置Array对象的原型 在 JavaScript 中 我会这样做 例如 Array prototype sum function calculate sum of array values 如何在
  • 硬币兑换的空间优化解决方案

    给定一个值 N 如果我们想要找 N 分钱 并且我们有无限供应每种 S S1 S2 Sm 价值的硬币 我们可以有多少种找零方式 硬币的顺序并不重要 例如 对于 N 4 且 S 1 2 3 有四种解 1 1 1 1 1 1 2 2 2 1 3
  • 如何为codeigniter项目完美设置虚拟主机?

    我正在尝试为 codeigniter 项目制作虚拟主机 我已经在 httpd vhosts conf 中完成了此操作
  • 将组成员身份从 AD 中的一个用户复制到另一用户

    我正在尝试构建一个脚本 它将组成员身份从 AD 中的一个用户复制到另一个用户 我正在尝试使用 powershell 来自动执行此任务 然而 我在为用户创建支票时陷入困境 换句话说 当我将组成员身份从一个用户复制到另一个用户时 我希望能够在添
  • 数据库连接模拟失败

    我有一个 SL4 应用程序 它使用 WCF 与后端 SQL Server 2008 数据库进行通信 由于调用的存储过程需要数据库权限 其中一项 WCF 服务需要使用专用系统帐户连接到数据库 我尝试在服务代码中使用模拟来实现解决方案 例如 i
  • 如何使用 Intent.ACTION_GET_CONTENT 过滤掉不需要的文件

    我使用intent ACTION GET CONTENT 来允许用户仅选择图像或视频文件 这就是我准备意图的方式 Intent intent new Intent Intent ACTION GET CONTENT intent setTy
  • 在参数化中传递 pytest 夹具

    通过在 pytest mark parametrize 中传递 conftest py 中定义的装置 我收到以下错误 pytest alist 0220 0221 test 1 py v s NameError name alist is
  • 我们如何获取不同文件系统使用的文件分隔符?

    大家下午好 据我了解 Android 有 至少 2 个文件系统 一个用于 内部 存储 例如 data和 system 另一个用于 外部 存储 例如 mnt sdcard 这意味着当我们将文件保存到 内部 存储时 Context getFil
  • LessCSS 中的 @media 和 @font-face 支持

    你好 有谁知道如何使用 LessCSS 进行媒体查询吗 media screen and max width 600px container width 480px 给我以下错误 Syntax Error on line 23 expect
  • Javascript 不会删除 div 中的所有元素

    创建这段 JavaScript 代码是为了删除 div 内的所有输入 function remove inputs var elements document getElementById thediv getElementsByTagNa
  • 无法使用 Shinyjs() 禁用闪亮的应用程序单选按钮

    我正在尝试禁用闪亮的应用程序单选按钮 趋势 input Product A input month All 使用Shinyjs包 但没有成功 我的 ui 页面定义为 ui lt fluidPage shinyjs useShinyjs pa
  • WPF TabItem 标题模板

    示例代码
  • 如何更改 Android 中 DatePicker 的样式?

    我想更改 Android 中日期 时间选择器对话框的默认颜色 以便它与我的应用程序主题相匹配 我在Google上搜索了解决方案 但没有找到解决方案 我正在做的是创造一种新风格 不知道日期选择器对话框有哪些可用属性 如果有人可以发布一个链接
  • 为什么不能执行 mov [eax], [ebx] [重复]

    这个问题在这里已经有答案了 我可以做这个 mov eax ebx 和这个 mov eax ebx 甚至这个 mov eax ebx 但不是这个 错误C2415 mov eax ebx 只是wtf 为什么 它与 ptr1 ptr2 相同 为什
  • 解析带有 @ at 符号的 JSON (arobase)

    我的 JSON 对象的计算结果为 io IO type XXX 如果这个变量被调用my json 我如何访问 typeXXX 的值 我试过my json type 但这会产生错误 帮助表示赞赏 谢谢 Nick 对字符串使用方括号表示法 va
  • Team Foundation Build 还是 TeamCity?

    我们主要是一家从事 NET LOB 开发的 MS 商店 我们还在 CRM 应用程序中使用 MS Dynamics 所有开发人员目前都在使用 VS SQL Server 2008 我们也使用 VSS 但每个人在工作中都讨厌它 而且很快就会被淘
  • Guava Joiner 无法添加前缀和后缀[重复]

    这个问题在这里已经有答案了 我要求 Joiner 能够为元素添加前缀和后缀 例如 String str a b c Joiner on prefix suffix join str 预期输出为 a b c 我们有什么替代方案吗 因为番石榴不