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 p>
1,10 $ code> li>
-
€ 1,10 code> li>
-
1,10 € code> li>
-
EUR 1.10 code> (Peut-être que je ne suis pas sûr que je rencontrerai réellement celui-ci) li>
ul>
Je voudrais extraire le symbole monétaire ( $ code>) à partir de celui-ci, et si possible, obtenez la devise code> objet code> (java) associée (Java) à partir de ce symbole. Je n'ai pas besoin d'extraire le montant, je peux obtenir cela ailleurs. P>
3 Réponses :
getymbol () code> méthode de
java.util.Currency code> vous aidera à obtenir le symbole de devise p>
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 p>
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 pour lancers d'exception code> (au lieu de
try / catch / system.out.printStacktrace code>)
La réponse ici accepté SO peut aider: stackoverflow.com/questions/7116507/...