0

我写了这样的搜索:

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 的代码。

4

1 回答 1

1

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

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$;
        }
    }
}
于 2018-02-16T11:09:47.500 回答