Извлечь дату из большой строки - PullRequest
1 голос
/ 02 мая 2010

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

Ответы [ 4 ]

2 голосов
/ 16 июля 2010

Я бы использовал синтаксический анализ Java DateFormat. Это позволяет вам проходить через строку, используя объект ParsePosition.

DateFormat format = new SimpleDateFormat("yyyymmddhhmmss");
ParsePosition pp = new ParsePosition(0);
for (int c = 0; c < text.length(); c++) {
    pp.setIndex(c); pp.setErrorIndex(-1);
    Date d = format.parse(text, pp);

    if (d != null) {
        // Handle parsed date

        // Only advance past the last parsed date if there was no error
        if (pp.getErrorIndex() < 0) c = pp.getIndex() - 1;
    }
}
0 голосов
/ 02 мая 2010

регулярные выражения должны работать, чтобы получить возможные подстроки - тогда некоторая логика здравого смысла, чтобы проверить даты для любой другой допустимости

0 голосов
/ 02 мая 2010

Я бы использовал регулярное выражение. Предполагая, что это всегда 14-значное число и что в строке не будет других ровно 14-значных чисел, это было бы легко сделать.

Существует довольно много инструментов, помогающих создавать регулярные выражения, я обычно использую http://www.redfernplace.com/software-projects/regex-builder/, что облегчает работу даже без особых знаний о том, как они работают.

0 голосов
/ 02 мая 2010

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html. Предполагая, что это Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...