gpt4 book ai didi

java - Intellij 结构搜索和替换所有形式的 if 语句

转载 作者:行者123 更新时间:2023-12-02 11:40:03 31 4
gpt4 key购买 nike

我写了一个这样的搜索:

preparedStatement = connect.prepareStatement($sql$);
$code1$;
$resultSet$ = preparedStatement.executeQuery();
$code2$;
if ($resultSet$.next()) {
$code3$;
}

像这样的替换:

try (PreparedStatement preparedStatement = connect.prepareStatement($sql$)) {
$code1$;
try (ResultSet $resultSet$ = preparedStatement.executeQuery()) {
$code2$;
if ($resultSet$.next()) {
$code3$;
}
}
}

当我运行它时,它会找到具有 if { foo } else { bar} 结构的代码。我对此很满意,但问题是如果我替换它会删除 else { bar } 部分。我希望此搜索/替换能够在带有 else、多个 else-if 或这些的任意组合的 if 语句上合理地工作。有没有办法通过一次搜索和替换来做到这一点?

我尝试将搜索中的 if 更改为具有 else,这解决了问题,但随后它跳过了仅具有 if 而没有 else 的代码。

最佳答案

目前无法通过单个结构搜索和替换来完成此操作。不过,您可以用两个来完成。您已经有了查找 ifelse 工作的模式。要查找没有 else 分支的 if,您可以使用如下模式:

PreparedStatement $preparedStatement$ = $connect$.prepareStatement($sql$);
$code1$;
$resultSet$ = $preparedStatement$.executeQuery();
$code2$;
if ($resultSet$.next()) {
$code3$;
} else $nothing$

$nothing$ 变量的约束(在编辑变量按钮下)为:
最小/最大出现次数:0, 0

并使用替换模式省略 else 分支:

try (PreparedStatement $preparedStatement$ = $connect$.prepareStatement($sql$)) {
$code1$;
try (ResultSet $resultSet$ = $preparedStatement$.executeQuery()) {
$code2$;
if ($resultSet$.next()) {
$code3$;
}
}
}

关于java - Intellij 结构搜索和替换所有形式的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48653491/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com