2011-10-23 13 views
5

Sto analizzando un file che ha valori interi usando le virgole per separare migliaia.groovy converti stringa "1,503" in numero intero

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

non funziona, genera un'eccezione di analisi. C'è un modo semplice per analizzare questo?

Grazie

risposta

6

Utilizzare NumberFormat invece. Ad esempio, in 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); 
    } 
} 

(si può quindi ottenere il valore intero dalla Long, naturalmente.)

ho specificato esplicitamente Locale.US per garantire la virgola viene utilizzato come separatore delle migliaia; potresti voler usare una diversa localizzazione se l'input può variare.

+0

Impressionante Jon, grazie. – Ray

7

Un metodo leggermente più groovy potrebbe essere;

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

Ma questa utilizzerà l'impostazione internazionale predefinita

+0

Questo è Groovy, grazie Tim – Ray

+0

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

Problemi correlati