9
votes

Extrait de devise de montant formaté

Je reçois une somme formatée d'argent d'un service Web. Il peut s'agir de différents formats et d'utiliser différentes devises, par exemple

  • 1,10 $
  • € 1,10
  • 1,10 €
  • EUR 1.10 (Peut-être que je ne suis pas sûr que je rencontrerai réellement celui-ci)

    Je voudrais extraire le symbole monétaire ( $ ) à partir de celui-ci, et si possible, obtenez la devise objet (java) associée (Java) à partir de ce symbole. Je n'ai pas besoin d'extraire le montant, je peux obtenir cela ailleurs.


1 commentaires

La réponse ici accepté SO peut aider: stackoverflow.com/questions/7116507/...


3 Réponses :


0
votes

getymbol () méthode de java.util.Currency vous aidera à obtenir le symbole de devise


0 commentaires

1
votes

Vous pourriez avoir un coup d'œil à Joda Money , cela pourrait offrir une solution à votre problème. Attention: c'est toujours la version 0.6


0 commentaires

4
votes

Vous pouvez utiliser une expression régulière pour analyser votre résultat du Webservice. Vous devez filtrer tous les caractères, à l'exception des chiffres, des points et des espaces blancs. Voici la regex pour cela:

public void test() throws Exception {
    String text = "2.02 $";
    String regexp = "[^0-9\\.,\\s]*";
    Pattern p = Pattern.compile(regexp);
    Matcher m = p.matcher(text);
    while (m.find()) {
        for (int i = 0; i < m.groupCount() + 1; i++)
            LOG.info(m.group(i));
    }
}


1 commentaires

+1 pour lancers d'exception (au lieu de try / catch / system.out.printStacktrace )