Получить часть строки из полного текста - PullRequest
0 голосов
/ 31 мая 2019

У меня есть строковая переменная, которая содержит текст вместе с некоторыми датами. Теперь я хотел бы получить дату из текста. Как я могу это сделать.

String a ="I am ready at time -S 2019-06-16:00:00:00 and be there"

Теперь я хотел бы получить оттуда 2019-06-16:00:00:00. Формат даты всегда будет в том же формате, но мне нужно извлечь дату только из текста.

Ответы [ 4 ]

3 голосов
/ 31 мая 2019

Попробуйте использовать регулярное выражение с шаблоном:

\d{4}-\d{2}-\d{2}:\d{2}:\d{2}:\d{2}

Пример кода:

String a = "I am ready at time -S 2019-06-16:00:00:00 and be there";
String pattern = "\\d{4}-\\d{2}-\\d{2}:\\d{2}:\\d{2}:\\d{2}";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(a);
while (m.find()) {
     System.out.println("found a timestamp: " + m.group(0));
}
0 голосов
/ 31 мая 2019

Используйте регулярное выражение для извлечения даты из текста.

public static void main(String[] args) {
    String a = "I am ready at time -S 2019-06-16:00:00:00 and be there";
    Pattern pattern = Pattern.compile("[0-9]{4}[-][0-9]{1,2}[-][0-9]{1,2}[:][0-9]{1,2}[:][0-9]{1,2}[:][0-9]{1,2}");
    Matcher matcher = pattern.matcher(a);
    while(matcher.find()){
        System.out.println(matcher.group());
    }
}
0 голосов
/ 31 мая 2019
String str = "I am ready at time -S 2019-06-16:00:00:00 and be there";
Pattern pattern = Pattern.compile("(?<date>\\d{4}-\\d{2}-\\d{2}):(?<time>\\d{2}:\\d{2}:\\d{2})");
Matcher matcher = pattern.matcher(str);

if(matcher.matches()) {
    System.out.println(matcher.group("date"));  // 2019-06-16
    System.out.println(matcher.group("time"));  // 00:00:00
}
0 голосов
/ 31 мая 2019

Я бы предложил использовать для этого регулярные выражения, например:

private static final Pattern p = Pattern.compile("(\d{4}-\d{2}-\d{2}:\d{2}:\d{2}:\d{2})");
public static void main(String[] args) {

    String a = "I am ready at time -S 2019-06-16:00:00:00 and be there"

    // create matcher for pattern p and given string
    Matcher m = p.matcher(a);

    // if an occurrence if a pattern was found in the given string...
    if (m.find()) {
        // ...then you can use group() methods.
        System.out.println(m.group(0));
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...