是否有一种方法来传递一个字符串变量在Java for循环?



我的要求是从数据库中删除数据,但是我需要传递给DELETE查询的字符串是动态生成的,所以我必须首先收集数据,然后在for循环中使用它,该循环将多次发送DELETE查询。

My steps so far:

首先,我过滤了一个列表,以便将所需元素的列表收集到一个变量中。我得到了预期的输出:

List<String> newFilter = allProductNames.stream().filter(field -> field.startsWith("sample", 1)).collect(Collectors.toList());
System.out.println(newFilter)

输出:

"sample1", "sample2", "sample3", "sample4"

现在,我想使用每个元素向Neo4j数据库发送查询,使用查询-DROP DATABASE <database_name> wait;,其中<database_name>将被我收集的每个元素替换。所以查询看起来像这样:

DROP DATABASE sample1 wait;
DROP DATABASE sample2 wait;
DROP DATABASE sample3 wait;
DROP DATABASE sample4 wait;
DROP DATABASE sample5 wait;

我直接想到的是,for循环可以帮助我通过在第一个查询中传递sample1,在第二个查询中传递sample2来重复发送查询…等等,但我的困境是我不知道如何实现这一点。

我试过这样做,但它不起作用:

List<String> newFilter = allProductNames.stream().filter(field -> field.startsWith("sample", 1)).collect(Collectors.toList());
int filterSize = newFilter.size();
int i = 0;
String dropDatabase = "DROP DATABASE " + i + " wait;"; //i want to pass the element as a variable here
for (; i < filterSize ; i++) {
basePage.queryInputField.sendKeys(dropDatabase);
}

我试图在循环中做的是在第一次运行中传递makei = sample1,在第二次运行中传递i = sample2,等等,但是iint,我相信只有int可以传递到一个条件中,就我的一点Java知识而言。

我如何在第一次运行中将Stringsample1传递到循环中以实现此DROP DATABASE sample1 wait;,并在随后的运行中传递其他元素?我愿意接受任何能帮助我实现这一目标的方法。

它不工作,因为你没有更新dropDatabase字符串在循环中的任何时刻

你有两个选择,用a表示每个,或者用a表示i来更新字符串:

for (int i = 0; i < filterSize; i++) {
basePage.queryInputField.sendKeys("DROP DATABASE " + newFilter.get(i) + " wait;");
}

for (String database : newFilter) {
basePage.queryInputField.sendKeys("DROP DATABASE " + database + " wait;");
}

或者如果你想分开查询字符串,你也可以使用这样的格式:

String format = "DROP DATABASE %s wait;";
for (String database : newFilter) {
basePage.queryInputField.sendKeys(String.format(format, database));
}

试试这个:

for (String dbName : newFilter) {
String dropDatabase = "DROP DATABASE " + dbName + " wait;";
basePage.queryInputField.sendKeys(dropDatabase);
}

相关内容

  • 没有找到相关文章

最新更新