Java — экранирующий символ косой черты

Может ли кто-нибудь сказать мне, как я использую escape-символ косой черты в Java. Я знаю, что обратная косая черта — это \\, но я пробовал \/ и // безуспешно!

Вот мой код: -

public boolean checkDate(String dateToCheck) {  
    if(dateToCheck.matches("[0-9][0-9]\ /[0-9][0-9]\ /[0-9][0-9][0-9][0-9]")) {
        return true;
    } // end if.
    return false;
} // end method.

Заранее спасибо!


person pnefc    schedule 24.05.2011    source источник


Ответы (1)


Вам не нужно экранировать косую черту ни в Java как языке, ни в регулярных выражениях.

Также обратите внимание, что такие блоки:

if (condition) {
    return true;
} else {
    return false;
}

более компактно и читабельно записываются как:

return condition;

Итак, в вашем случае, я считаю, ваш метод должен быть примерно таким:

public boolean checkDate(String dateToCheck) {
    return dateToCheck.matches("[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]"));
}

Обратите внимание, что это не очень хороший способ проверки допустимых дат - вероятно, стоит попытаться проанализировать его как также или вместо даты, в идеале с помощью API, который позволит вам сделать это без создания исключения в случае сбоя.

Ваше регулярное выражение также можно записать проще:

public boolean checkDate(String dateToCheck) {
    return dateToCheck.matches("[0-9]{2}/[0-9]{2}/[0-9]{4}"));
}
person Jon Skeet    schedule 24.05.2011
comment
Спасибо, Джон, это отвечает на мой вопрос. Причина, по которой я делаю это таким образом, заключается в том, что так говорит спецификация в университете. Предоставленный самому себе, я бы использовал объект даты Java. - person pnefc; 26.05.2011
comment
Вы хотите прочитать этот другой вопрос о проверке даты: stackoverflow.com/questions/226910/ - person Basil Bourque; 11.03.2012