Николас К уже дал ответ, в котором хорошо показано использование java.time.Я просто хотел добавить, что java.time может сделать немного больше, чем показано здесь.
DateTimeFormatter factureLineFormatter
= DateTimeFormatter.ofPattern("'Facture du' dd/MM/uuuu");
String keyword = "Facture du";
String s = "Facture du 28/05/2018";
if (s.contains(keyword)) {
LocalDate date = LocalDate.parse(s, factureLineFormatter);
Month month = date.getMonth(); // Extract a `Month` enum object.
String output =
month.getDisplayName( // Get localized name of month.
TextStyle.FULL, // How long or abbreviated should the month name be.
Locale.FRENCH) // `Locale` determines the human language used in translation, and the cultural norms used in abbreviation, punctuation, and capitalization.
;
System.out.println(output);
}
Вывод:
май
Янемедленный анализ всей строки путем добавления литерального текста в кавычки в строку шаблона формата.Я печатаю локализованное название месяца - здесь на французском, но вы можете выбрать другой язык.Вы также можете сократить его, если хотите.
Редактировать: Василий Бурк любезно отредактировал мой код, изложив в комментариях, что делает каждый метод и аргумент.Это делает код длинным, но отлично подходит для объяснения в ответе переполнения стека.В производственном коде вы, вероятно, используете однострочник:
System.out.println(date.getMonth().getDisplayName(TextStyle.FULL, Locale.FRENCH));