2011-10-23 13 views
5

Estoy analizando un archivo que tiene valores enteros usando comas para separar miles.groovy convert Cadena "1,503" a Entero

String s = "1,503" 
Integer i = new Integer(s) 

no funciona, arroja una excepción de análisis. ¿Hay alguna manera fácil de analizar esto?

Gracias

Respuesta

6

Use NumberFormat lugar. Por ejemplo, en Java:

import java.util.*; 
import java.text.*; 

public class Test { 
    public static void main(String args[]) throws ParseException { 
     NumberFormat format = NumberFormat.getIntegerInstance(Locale.US); 
     Long parsed = (Long) format.parse("1,234"); 
     System.out.println(parsed); 
    } 
} 

(a continuación, puede obtener el valor entero de la Long, por supuesto.)

he especificado explícitamente Locale.US para garantizar que se utiliza la coma como separador de miles; Es posible que desee utilizar una configuración regional diferente si la entrada puede variar.

+0

impresionante Jon, gracias. – Ray

7

Un método un poco más groovy podría ser;

int a = java.text.NumberFormat.instance.parse('1,234') 

Pero para ello se utiliza la configuración regional predeterminada

+0

Eso es Groovy, gracias Tim – Ray

+0

funky ..........! –