-1

条件文字列にあるメソッドがあり、論理演算子の前後にスペースがない場合、エラーがスローされます。たとえば、「more」のような単語が見つかった場合、または「or」が見つかった場合にエラーが発生するという問題があります。これは例であり、以下は私のコードです。

調子: (da_cargue_hechos_mora_abonados) and s(da_cliente_diario_scl) and s(da_e_abonado_diario_pos) and s(da_e_abonado_diario_pre) and s(da_dim_situacion_scl) and s(da_dim_oficina_scl)

Code:

 private static Job checkSpacesInCondition(Job job) {
String condition = null;
condition = job.getCondition();

// If null, no check needed
if (condition != null) {
    condition = condition.toLowerCase();
    condition = condition.replaceAll("&&", "and");
    condition = condition.replaceAll("&", "and");

    for (String word : CONDITION_OPERATORS) {
    Pattern logicalPattern = Pattern.compile("\\S" + word + "|"
        + word + "\\S");
    Matcher logicalMatcher = logicalPattern.matcher(condition);
    boolean foundNoSpace = logicalMatcher.find();
    if (foundNoSpace) {
        job.addWarning(JobWarning.SPACES_AFTER_LOGICAL_OPERATOR);
    }
    }
}

return job;
}
4

1 に答える 1