groovy将String"1,503"转换为Integer

Ray*_*Ray 5 groovy

我正在使用逗号分析具有整数值的文件来分隔数千个.

String s = "1,503"
Integer i = new Integer(s)
Run Code Online (Sandbox Code Playgroud)

不起作用,抛出一个解析异常.有没有一种简单的方法来解析这个?

谢谢

tim*_*tes 7

一种稍微更时髦的方法可能是;

int a = java.text.NumberFormat.instance.parse( '1,234' )
Run Code Online (Sandbox Code Playgroud)

但是这将使用默认语言环境


Jon*_*eet 6

NumberFormat改用.例如,在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);
    }
}
Run Code Online (Sandbox Code Playgroud)

(当然,您可以从中获取整数值Long.)

我明确指定Locale.US保证逗号用作千位分隔符; 如果输入可能不同,您可能希望使用不同的区域设置.