Я проверяю приоритет в строке в моей функции. Есть ли способ изменить мой код, чтобы включить регулярное выражение - я довольно незнакомый с регулярным выражением, и хотя я читал несколько учебников в Интернете, все еще не получая "это" слишком хорошо. Поэтому любое руководство будет действительно оценено.
Например, в строке XLYZ, если символ после X не является L или C, оператор 'нарушение' печатается. Вот код ниже:
if (subtnString[cnt]=='X' && cnt+1<subtnString.length){
if(subtnString[cnt+1]!= 'L' || subtnString[cnt+1]!= 'C'){
System.out.println("Violation: X can be subtracted from L and C only");
return false;
}
}
Есть ли способ, которым я могу использовать regex для замены этого кода?
Вы можете использовать что-то вроде этого:
Pattern regex = Pattern.compile("^X[LC]");
Matcher regexMatcher = regex.matcher(subjectString);
if(regexMatcher.find() ) { // it matched!
}
else { // nasty message
}
В демо см. Строки, которые соответствуют.
объяснение
^
утверждает, что мы находимся в начале строкиX
соответствует буквалу X
[LC]
- это класс символов, который соответствует либо одному L
либо одному C
Справка