我有一个像这样的数据表:
|quotes|
|quote_a|
|quote_b|
|quote_c|
我想检索数据表中的所有这些引号,并将它们传递到json请求正文中。现在,我知道如何通过data.get(0)
,data.get(1)
和data.get(2)
来抓取每个单独的项目,但这并不是真正的动态。
我想使用一种动态的方式来检索数据表中的所有引号,并用逗号将它们放在远处,然后将所有引号放在正文中。
如何更改以下内容以实现此目的?
@When("^get quote)
public void getQuotes(DataTable dataTable)
throws Throwable
{
List<List<String>> data = dataTable.raw();
List<String> quotesList = new ArrayList<>();
for (String quotesStr : data) {
quotesList.add(quotesStr);
}
requestSpecificationFacade.body("{\n" +
" \"quoteId\": " + data.get(0) + ", " + data.get(1) + ", " + data.get(2) + "\n" +
"}");
}
答案 0 :(得分:0)
如果我正确理解,您有一个字符串列表,并希望将其动态转换为以逗号(和空格)分隔的单个字符串。
您可以使用带有String.join
的 Java 8 来完成此操作:
String output = String.join(", ", data);
requestSpecificationFacade.body("{\n" +
" \"quoteId\": " + output + "\n" +
"}");
或将 Java 7 与StringBuilder
一起使用:
StringBuilder outputBuilder = new StringBuilder();
for (String quote : data) {
outputBuilder.append(quote);
outputBuilder.append(", ");
}
String output = outputBuilder.toString();
// Remove last comma
output = output.substring(0, output.length() - ", ".length());
requestSpecificationFacade.body("{\n" +
" \"quoteId\": " + output + "\n" +
"}");
在两种情况下,output
将返回quote_a, quote_b, quote_c
。