У меня есть метод, который находится в строке условия и если нет пробелов после и перед логическим оператором, это вызывает ошибку. У меня проблема, если, например, он находит слово «больше» или находит «или», он дает ошибку. Я не знаю, как это исправить. Это пример, а ниже - мой код. Спасибо всем за помощь.Java: В анализе строки, игнорировать то, что находится в родительском
условие: (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;
}
вы можете уточнить свой вопрос немного? –
Вы можете использовать \\ (* \\), чтобы найти любой символ или строку, которая имеет круглые скобки вокруг это – tom
Сообщите нам, какую ошибку он выбрасывает (вместе с трассировкой стека) и дает нам некоторые примеры того, где она выбрасывает эту ошибку, а также там, где она дает неверный вывод, а также то, что вы хотите для вывода (и помещаете его отдельно, а не как часть предложений). – Dukeling