我这里有一个代码,用于检查记录的标题是否包含我们要忽略的四个值之一。如果标题包含 4 个字符串,我们想将其放入数据库并将 state
设置为 IGNORE
。如果没有,我们还是想把它放到数据库中,并设置state
为NEW
,以备后处理。
该代码有效,但是,它有点令人眼花缭乱。我怎样才能以更清晰、更高效、更易于阅读的方式编写此代码?
if (
record.getTitle().contains("word") ||
record.getTitle().contains("different word") ||
record.getTitle().contains("phrase") ||
record.getTitle().contains("different phrase")
) {
int id = dao.insert(nv);
nvRecord =
NV
.builder()
.from(nv)
.setId(id)
.setState(state.IGNORE)
.build();
} else {
int id = dao.insert(nv);
nvRecord =
NV
.builder()
.from(nv)
.setId(id)
.setState(state.NEW)
.build();
}
最佳答案
您可以对“标题”使用正则表达式,后跟一、二、三或四。喜欢,
if (record.getTitle().matches("Title [1234]")) {
或者编译一个Pattern
并使用一个Matcher
Pattern p = Pattern.compile("Title [1234]");
Matcher m = p.matcher(title);
if (m.matches()) {
根据您更新的要求,流式传输您的特殊题名的 List
并检查记录题名是否包含它。喜欢,
if (List.of("Titanic", "The Great Gatsby", "Catch Me If You Can", "Inception")
.stream().anyMatch(record.getTitle()::contains))
关于java - 在不使用 OR 运算符的情况下检查 String 是否包含 Java 中的多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69533097/