使用读取和转换字符串格式所需的Java流进行探索

使用读取和转换字符串格式所需的Java流进行探索,java,java-stream,Java,Java Stream,我正在尝试Java streams读取字符串列表,将列表拆分为如下所示的某种格式 例如:这在我的输入字符串中- [苹果,芒果] 我正在尝试将上述数据转换为这种格式 (“苹果”、“芒果”) 尝试使用java streams转换,代码如下 String.join(",", list.stream().map(item -> "'"+item+"'").collect(Collectors.toList())); 我得到的输出

我正在尝试Java streams读取字符串列表,将列表拆分为如下所示的某种格式 例如:这在我的输入字符串中-

[苹果,芒果]
我正在尝试将上述数据转换为这种格式

(“苹果”、“芒果”)
尝试使用java streams转换,代码如下

String.join(",", list.stream().map(item ->   "'"+item+"'").collect(Collectors.toList()));
我得到的输出如下所示

(“苹果,芒果”)
但我期待着像这样

(“苹果”、“芒果”)
有人能纠正我的java代码以获得高于要求的格式吗

这个问题的背景是

正在尝试创建一个SQL查询

从ID位于('APPLE','MANGO')的测试表中选择*)

其中as IN子句参数是一个
ArrayList()

但是用我的代码,我得到的是

从ID位于('APPLE,MANGO')的测试表中选择*)


IN子句的格式不正确,'缺少

可能您可以执行以下操作:

String.format("(%s)", list.stream().map(s -> String.format("'%s'", s)).collect(Collectors.joining(",")));
List<String> list = List.of("APPLE", "MANGO");
String sql = "Select * from TEST_TABLE where ID IN";
    
String params = list.stream().map(s -> "'" + s + "'")
                        .collect(Collectors.joining(",", "(", ")"));
    
sql = sql + params;
System.out.println(sql);
编辑:

String.format("%s)", list.stream().map(s -> String.format("'%s'", s)).collect(Collectors.joining(",")));
另一时间编辑:

有了这些附加信息,这就是您所需要的:

String query = "Select * from TEST_TABLE where ID IN (%s)"

query = String.format(query, list.stream().map(s -> String.format("'%s'", s)).collect(Collectors.joining(",")));

System.out.println(query);
尝试以下方法:

String.format("(%s)", list.stream().map(s -> String.format("'%s'", s)).collect(Collectors.joining(",")));
List<String> list = List.of("APPLE", "MANGO");
String sql = "Select * from TEST_TABLE where ID IN";
    
String params = list.stream().map(s -> "'" + s + "'")
                        .collect(Collectors.joining(",", "(", ")"));
    
sql = sql + params;
System.out.println(sql);
List List=List.of(“苹果”、“芒果”);
String sql=“从ID所在的测试表中选择*”;
字符串params=list.stream().map(s->“'+s+”))
.collect(收集器.连接(“,”,“(“,”));
sql=sql+params;
System.out.println(sql);

我不知道您预期输出中的第二个右括号是打字错误还是正确。如果您需要第二个支架,只需将其添加到上方。

您不知道缺少了什么?可能是“拆分列表”部分?列表中有什么?很难回答你的问题,因为它没有包含一个。请将您的问题包括完整的代码集、示例输入和输出以及任何错误消息。问题必须在其他地方。我不能复制。我得到了预期的输出。在替换代码后,我得到了如下结果:从测试表中选择*,其中ID在('APPLE,MANGO')中,但我期望输出像从测试表中选择*,其中ID在('APPLE,'MANGO'))中,所以我得到了你。您需要一个可放置在SQL“in”条件中的结果。我编辑了答案。我又编辑了一次。现在应该可以了。我试过了,我得到了如下的查询,从TEST_表中选择*,其中ID在('APPLE,MANGO'),我刚刚运行了代码,我的输出是:从TEST_表中选择*,其中ID在('APPLE','MANGO'))