栅栏柱问题的优雅解决方案(带字符串)

2024-04-11

我指的是连接Strings 具有一定的String中间,例如用句点分隔的句子连接,或用逗号连接参数列表。我知道您可以使用库,但有时这些库不能满足您的要求,例如当您想要生成要连接的短语时。到目前为止我已经想出了两种解决方案

StringBuffer sentence = new StringBuffer();
String period = "";
for ( int i = 0; i < sentences.length; i++ ) {
    sentence.append( period + sentences[i] );
    period = ". ";
}

其遭受冗余重新分配period。还有

StringBuffer actualParameters = new StringBuffer();
actualParameters.append( parameters[0] );
for ( int i = 1; i < parameters.length; i++ ) {
    actualParameters.append( ", " + parameters[i] );
}

这消除了重新分配,但看起来仍然没有吸引力。任何其他解决方案将不胜感激。


有一个Apache Commons Lang 中的一系列函数就可以做到这一点 http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html#join%28java.util.Collection,%20java.lang.String%29.

如果你必须自己编码,我通常做这种事情的方式如下:

StringBuilder sb = new StringBuilder();
for (String sentence : sentences) {
    if (sb.length() != 0) {
        sb.append(". ");
    }
    sb.append(sentence);
}

该版本允许sentences是任何可迭代的(返回字符串)。还要注意使用StringBuilder代替StringBuffer.

很容易将其概括为类似的东西org.apache.commons.lang.StringUtils.join.

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

栅栏柱问题的优雅解决方案(带字符串) 的相关文章

  • 如何在java swing中的每个页面中打印带有页脚的整个JPanel

    好吧 这可能很简单 但想不通 我有一个包含 JTable 的 JPanel JTable 包含很少的行 有时更多 因为我推入其中的表模型取决于数据库 但是 我不使用任何包含 JTable 的 JScolpane 因此 当 JTable 包含
  • 如何使用 SLF4J 和 Log4j2 记录 FATAL(或任何自定义日志级别)

    我有那些具体的要求 需要能够登录FATAL level 需要使用SLF4J 需要使用Log4j2 现在 这是我的执行 final Logger logger LoggerFactory getLogger HelloWorld class
  • Hibernate OneToMany 关系是 PersistentBag 而不是 List

    我正在 javafx 中开发一个应用程序 它通过 RMI 与 EAR 连接 该 EAR 连接到 SQLServer DB 并使用 hibernate 映射 POJOS 这些 POJOS 包含双向 OneToMany 和 ManyToOne
  • JavaEE 8 教程,在 hello1 项目上部署失败

    我正在尝试学习 Java EE 8 我遵循了官方指南https javaee github io tutorial https javaee github io tutorial 但我有这个问题 cargo maven2 plugin 1
  • Spring webflow 应用程序:HTTP 302 暂时移动

    我的 java 应用程序中的每个请求都会生成另外 2 个带有 HTTP 302 错误的请求 例如 如果请求查看名为板 html 这个请求是从首页 html 我收到按以下顺序生成的 3 个请求 POST home html 302 Moved
  • 如何正确配置Tomcat SSLHostConfig?

    我正在按照本教程在 tomcat 中启用 ssl https medium com raupach how to install lets encrypt with tomcat 3db8a469e3d2 https medium com
  • 如何在具有动态列的表中插入值 Jdbc/Mysql

    我想在具有动态列的表中添加值 我设法创建一个包含动态列的表 但我不知道如何插入数据 Create Table sql CREATE TABLE MyDB myTable level INTEGER 255 int columnNumber
  • 无法从后台服务通过 WiFi 访问互联网

    我将直接介绍我发现的一些事实 数据 如果您遇到 解决了类似的问题 请帮助我 我每 5 分钟向服务器发送一次数据 除非用户在服务器的帮助下手动将其关闭 wakeful broadcast receiver通过一个intent service
  • getClassLoader().getResource() 返回 null

    我有这个测试应用程序 import java applet import java awt import java net URL public class Test extends Applet public void init URL
  • JSP 标签+ scriptlet。如何启用脚本?

    我有一个使用标签模板的页面 我的 web xml 非常基本 我只是想在页面中运行一些代码 不 我对标签或其他替代品不感兴趣 我想使用不好的做法 scriptlet 哈哈 到目前为止 我收到了 HTTP ERROR 500 错误 Script
  • Vertx HttpClient getNow 不工作

    我的 vertx HttpClient 有问题 下面的代码显示使用 vertx 和纯 java 测试 GET Vertx vertx Vertx vertx HttpClientOptions options new HttpClientO
  • java JFileChooser 文件大小过滤器

    我知道我可以按文件类型进行过滤 但是可以按文件大小进行过滤吗 例如 JFileChooser 仅显示 3 MB 以内的图片 简短的回答应该是 你尝试过什么 长答案是肯定的 JFileChooser fc new JFileChooser f
  • 在 Mac 上使用 JRE 打开 jar 文件

    我有一个 jar 文件 旨在通过命令行运行 我不打算在运行应用程序的机器上进行任何java开发 我的思考过程是 因此我应该只需要JRE而不是JDK 此外 JDK 大约是 JRE 的 4 倍 我不想下载它 在 Mac 上安装 JRE 时 它不
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • java 属性文件作为枚举

    是否可以将属性文件转换为枚举 我有一个包含很多设置的属性文件 例如 equipment height equipment widht equipment depth and many more like this and not all a
  • 如何计算文件中单词的长度?爪哇

    我正在尝试编写一个代码来计算文件中特定长度的单词数 例如 How are you 会打印 Proportion of 3 letter words 100 3 words 我想计算长度为 1 2 3 4 5 6 7 8 9 10 11 12
  • 使用 Maven 3 时 Cobertura 代码覆盖率为 0%

    读完这篇文章后 将 Cobertura 与 Maven 3 0 2 一起使用的正确方法是什么 https stackoverflow com questions 6931360 what is the proper way to use c
  • Java SE + Spring Data + Hibernate

    我正在尝试使用 Spring Data Hibernate 启动 Java SE 应用程序 并且到目前为止已经完成了以下操作 配置文件 Configuration PropertySource classpath hibernate pro
  • 监控 Java 应用程序上的锁争用

    我正在尝试创建一个小基准 在 Groovy 中 以显示几个同步方法上的高线程争用 当监控自愿上下文切换时 应该会出现高争用 在 Linux 中 这可以通过 pidstat 来实现 程序如下 class Res private int n s
  • Java 9 中紧凑字符串和压缩字符串的区别

    有什么优点紧凑的字符串 http openjdk java net jeps 254JDK9 中的压缩字符串 压缩字符串 Java 6 和紧凑字符串 Java 9 都有相同的动机 字符串通常实际上是 Latin 1 因此浪费了一半的空间 和

随机推荐

  • BackgroundWorker 完成事件 - 哪个线程?

    BackgroundWorker 控件的已完成事件是否返回到 GUI 线程 或者我是否必须将其封送回来 另外 进度事件是否返回到 GUI 线程 或者我是否必须将其封送回来 这两个事件都将被编组到 UI 线程上
  • Rails - 具有 data-* 属性的 link_to 帮助器 [重复]

    这个问题在这里已经有答案了 可能的重复 将 html5 数据属性与 Rails content tag 帮助器一起使用的最佳方法 https stackoverflow com questions 4258512 best way to u
  • 使用 Spring Data JDBC 的嵌套数据结构

    我想创建一个嵌套的数据结构 Entity1包含类型的对象Entity2存储在地图中 Entity2应该包含一个对象的映射Entity3 第一部分 Entity1 and Entity工作正常 当我添加Entity3 发生异常 当我执行一个简
  • 如何在 php/mysql Web 应用程序中实现悲观锁定?

    如何在 php mysql Web 应用程序中实现悲观锁定 网络用户打开一个页面来编辑一个数据集 行 网络用户单击 锁定 按钮 因此其他用户可以读取但不能写入此数据集 网络用户进行一些修改 可能需要 1 到 30 分钟 网络用户单击 保存
  • 如何在 watir 的 webdriver-user-agent gem 中传递 Chrome 选项

    我正在尝试使用 Watir gem 传递 Chrome Drive 的 cookies 选项 从 Watir 文档我可以做Watir Browser new chrome opts 所以对于cookie我可以这样做 browser Wati
  • Android FAB setBackgroundTintList 与 ColorStateList 不起作用

    我想在未启用 NFC 时更改 NFC 扫描 FAB 的颜色 我已成功在应用程序启动时更改颜色 但如果用户点击 FAB 并启用 NFC 颜色不会更改为原色 日志显示确实如此 但更改并未发生 My minSdkVersion 15 XML
  • Node.js 请求库的相对 uri

    我有以下代码 node js 无法解析 url const request require request const teamURL users user id teams const req request url teamURL js
  • 类“QueryParameterComparer”必须实现函数比较。

    我在下面从 C 转换为 VB NET 的代码中遇到以下错误 原始代码可以在此处找到 https developer linkedin com sites default files LinkedInAuth rar zip https de
  • 带有 android:priority 设置的意图过滤器

    我测试了意图过滤器android priority 0 和意图过滤器android priority 20 by android intent category HOME 我列出以下信息
  • 变量中的 JavaScript 反斜杠 (\) 导致错误

    在 Javascript 中 当我在某些变量中添加反斜杠时 例如 var ttt aa var ttt aa JavaScript 显示错误 如果我尝试限制用户输入此字符 我也会收到错误 aaa indexOf 1 限制用户输入中的反斜杠并
  • 如何更改 Xamarin 中的章节标题字体样式?

    我有这个列表视图 但我不知道如何设置部分标题的样式 在 Xamarin 中如何实现 还没有找到任何东西
  • OpenCV 中是否可以将局部曲率绘制为代表对象“指向性”的热图?

    给定一个可以检测并绘制轮廓的斑点阈值图像 在绘制轮廓时是否可以将局部曲率表示为热图 即是否 1 可以确定开放 cv 轮廓上的局部曲率 2 将此曲率映射到热图颜色空间 3 将轮廓绘制为热图 我的目标是测量对象的 尖度 以便我可以绘制从尖头侧到
  • 带回滚的Mysql嵌套事务

    有人可以告诉我是否可以从一个过程中调用另一个过程 并且如果任一过程的任何部分失败 则回滚所有内容 如果这是可能的 有人可以向我展示一个如何实施的小例子吗 EDIT 过程 b 失败 但过程 a 仍然向表 a 中插入一行 据我了解 如果插入的任
  • C 检测 popen 子进程中的错误

    我在用着popen读取第三方程序的输出 如果子程序失败 我想检测并重新启动 我该怎么做呢 如果子进程死亡 进程不会正常退出 因此无法使用WEXITSTATUS去检查 还有别的办法吗 这是一个简单的例子 PINGER C include
  • 在经典 ASP 中设置 HTTP_X_FORWARDED_FOR 服务器变量

    我需要在 Request ServerVariables 集合中设置 HTTP X FORWARDED FOR 值 我正在尝试使用 Fiddler 请参阅本文 https stackoverflow com questions 321185
  • 给定精度的快速双精度数到字符串转换

    我需要以给定的精度将双精度数转换为字符串 String format 3f value or DecimalFormat 可以完成这项工作 但基准测试表明它很慢 甚至Double toString在我的机器上转换 100 万个数字大约需要
  • 如何判断一个视频是否是首映? ...通过 YouTube API

    在 YouTube 上 我们可以上传录制的视频 直播 现在还可以进行首映 使用视频 列出 YouTube 数据 API 的端点 https developers google com youtube v3 docs videos list我
  • mysql 全文搜索无法搜索 3 个字符

    在我的网站中 我使用全文搜索实现了搜索功能 它通常工作正常 但有时不像当我使用关键字 ship 而不是 shi 搜索时给出结果 但它应该回来 请帮助我为什么会发生这种情况 要索引的单词的最小和最大长度由ft min word len and
  • 使用 JavaScript 或 jQuery 如何检查窗口上是否存在事件?

    Setup 我已将一个事件附加到 窗口 对象 我想通过代码检查它是否存在 window addEventListener beforeunload function e false Attempts 我尝试过简单的和 jQuery 但没有成
  • 栅栏柱问题的优雅解决方案(带字符串)

    我指的是连接Strings 具有一定的String中间 例如用句点分隔的句子连接 或用逗号连接参数列表 我知道您可以使用库 但有时这些库不能满足您的要求 例如当您想要生成要连接的短语时 到目前为止我已经想出了两种解决方案 StringBuf