Сумма извлечения в центах от валюты в рамках текста

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

The price today is $1,234.56! Don't miss out!

Я хочу извлечь количество центов как интервал , т.е.:

123456

Некоторые критерии:

  • запятая 000 дополнительный
  • цена составляет меньше чем 1,000,000.00$
  • $ всегда является там </литием>
  • десятичная часть всегда является там </литием>

Я попытался использовать Pattern и Matcher, но это кажется слишком грязным.

Каков самый простой код, который сделает это?

0
nl ja de
$ знак всегда там?
добавлено автор Nikolay Kuznetsov, источник

2 ответы

Попробовать

    String s = "The price today is $1,234.56! Don't miss out!";
    Pattern p = Pattern.compile("\\$(((\\d+,?\\d++)|(\\d++))\\.?\\d\\d)");  
    Matcher m = p.matcher(s);
    m.find();
    Long cents = Long.parseLong(m.group(1).replaceAll("[,.]", ""));
    System.out.println(cents);

печати

123456
3
добавлено
И тогда преобразовать стоимость "1,234.56$" в центы, просто разденьте все нечисловые символы с value.replaceAll ("[^\\\d]", "")
добавлено автор Brad, источник
Этот doesn' t даже отвечают на вопрос. Как 1,234.56$ количество центов? Или 1234.56 ?
добавлено автор Bohemian, источник

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

int cents = Integer.parseInt(input.replaceAll(".*\\$((\\d+),)?(\\d+)\\.(\\d+).*", "$2$3$4"));
2
добавлено
@EvgeniyDorofeev, достаточно хороший, чтобы голосовать за вопрос также?:)
добавлено автор Bohemian, источник
+1 это определенно лучше, чем мой: (
добавлено автор Evgeniy Dorofeev, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async