当前位置: 首页 > 面试题库 >

Java-将引号附加到数组中的字符串并连接数组中的字符串

叶恩
2023-03-14
问题内容

我想在数组中的字符串后面加上双引号,然后再将它们作为单个字符串连接起来(保留引号)。是否有任何字符串库可以做到这一点?我已经尝试过Apache
commons StringUtils.join和Google番石榴中的Joiner类,但是找不到任何用双引号引起来的东西。

我的输入将是一个数组,如下所述:

String [] listOfStrings = {"day", "campaign", "imps", "conversions"};

所需的输出应如下所示:

String output = "\"day\", \"campaign\", \"imps\", \"conversions\"";

我知道我可以遍历数组并附加引号。但是,如果有的话,我想提供一种更清洁的解决方案。


问题答案:

Java
8具有Collectors.joining()及其重载。它也有String.join

使用StreamCollector

具有可重复使用的功能

Function<String,String> addQuotes = s -> "\"" + s + "\"";

String result = listOfStrings.stream()
  .map(addQuotes)
  .collect(Collectors.joining(", "));

没有任何可重用的功能

String result = listOfStrings.stream()
  .map(s -> "\"" + s + "\"")
  .collect(Collectors.joining(", "));

最短的 (虽然有点骇人听闻)

String result = listOfStrings.html" target="_blank">stream()
  .collect(Collectors.joining("\", \"", "\"", "\""));

使用 String.join

非常朴实。请勿在称为的方法中使用wrapWithQuotesAndJoin

String result = listOfString.isEmpty() ? "" : "\"" + String.join("\", \"", listOfStrings) + "\"";

使用旧版Java

帮自己一个忙,并使用图书馆。番石榴立刻浮现在脑海。

使用番石榴

Function<String,String> addQuotes = new Function<String,String>() {
  @Override public String apply(String s) {
    return new StringBuilder(s.length()+2).append('"').append(s).append('"').toString();
  }
};
String result = Joiner.on(", ").join(Iterables.transform(listOfStrings, addQuotes));

没有图书馆

String result;
if (listOfStrings.isEmpty()) {
  result = "";
} else {
  StringBuilder sb = new StringBuilder();
  Iterator<String> it = listOfStrings.iterator();
  sb.append('"').append(it.next()).append('"'); // Not empty
  while (it.hasNext()) {
    sb.append(", \"").append(it.next()).append('"');
  }
  result = sb.toString();
}

注意 :所有解决方案均假定listOfStrings是a List<String>而不是a
String[]。你可以转换String[]List<String>使用Arrays.asList(arrayOfStrings)。您可以Stream<String>直接从String[]using获取Arrays.stream(arrayOfString)



 类似资料:
  • 问题内容: 我有点困惑。我在任何地方都找不到答案;( 我有一个String数组: 然后我通过以下方式将其转换为字符串: 我期望得到字符串,但是我却得到了字符串。 我该如何在Java中做到这一点?我正在使用Eclipse IDE 问题答案: 使用 StringBuilder 而不是StringBuffer,因为它比StringBuffer快 。 样例代码 这是使用字符串连接的更好解决方案的原因:当连

  • 问题内容: 是否可以在Java中将单个字符附加到数组或字符串的末尾 例如: 问题答案:

  • 问题内容: 我是Java新手,所以我几乎不需要帮助 我有 我想向此数组(脚本)添加新的字符串(string1,string2)作为示例 我想在以后的阶段中不添加新字符串 我该怎么办? 问题答案: 您无法在Java中调整数组的大小。 声明数组的大小后,它将保持固定。 相反,您可以使用具有动态大小的对象,这意味着您无需担心其大小。如果数组列表的大小不足以容纳新值,则它将自动调整大小。

  • 问题内容: 我是一名刚从C ++转到Java的学生。 在Java中,为String和Char数组定义单独的数据类型的主要原因可能是什么? 两者有什么区别? 由于我只学习过C ++,所以直到现在我仍对它们有同感。请尽可能澄清。 问题答案: 是一成不变的。数组不是。字符串是在下面用char数组实现的,但是每次您尝试对其进行修改(例如,使用串联,替换等)时,它都会为您提供一个 新 对象。 因此,它表现为

  • 问题内容: 我有阵列 转换为字符串: 串: 以及如何将此字符串转换回数组? 问题答案: 尝试我的stringToDeep()方法转换回Array。

  • 问题内容: 我试图理解一个到字符串,一个的字符串表示形式到转换…我将我的转换成一个要发送的字符串,然后我希望我的Web服务(用python编写)将数据直接回显给客户端。 当我从Java应用程序发送数据时… 字节发送.. 发送(这是Arrays.toString()的结果,它应该是我的字节数据的字符串表示形式,该数据将通过电线发送): 在python端,python服务器将字符串返回给调用方(我可以