2011-09-28 12 views
7

Recibo una cantidad formateada de dinero de un servicio web. Puede estar en diferentes formatos y usando diferentes monedas, p.Extraer la moneda de la cantidad formateada

  • $ 1.10
  • € 1,10
  • 1,10 €
  • EUR 1.10 (tal vez, no estoy seguro de que en realidad encuentro con éste)

me gustaría extraer el símbolo de moneda ($) y, de ser posible, obtenga el objeto asociado Currency (Java) desde ese símbolo. No necesito extraer la cantidad, puedo obtenerla en otro lugar.

+0

El SO aceptado responder aquí puede ayudar: http://stackoverflow.com/questions/7116507/arbitrary-currency-string-get-all-parts-separated – Steve

Respuesta

0

getSymbol() método de java.util.Currency le ayudará a obtener el símbolo de moneda

1

Se puede echar un vistazo a Joda Money, podría ofrecer una solución para su problema. Precaución: sigue siendo la versión 0.6

3

puede usar una expresión regular para analizar el resultado del servicio web. Debe filtrar todos los caracteres, excepto los números, los puntos y los espacios en blanco. Aquí está la expresión regular para que:

String regexp = "[^0-9\\.,\\s]*"; 

El primer grupo del resultado coincidente es el símbolo de moneda (o el nombre, por ejemplo, euros).

Aquí es mi método de muestreo:

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)); 
    } 
} 
+0

+1 para 'throws Exception' (en lugar de' try/catch/System.out.printStackTrace') – michael667

Cuestiones relacionadas