Java tryParseInt最佳实践

时间:2015-07-03 09:09:57

标签: java parsing exception

我有很多代码收集用户输入并解析它, 我想解析整数值而不抛出异常。

我当前的tryParseInt()函数代码很简单:

public static Integer tryParseInt( String text )
{
    if(text == null)
        return null;

    try
    {
        return new Integer( text.trim() );
    }
    catch ( NumberFormatException e )
    {
        return null;
    }
}

但是我得到了很多NumberFormatExceptions,我很担心因为这可能会影响我的应用程序性能。 任何人都可以建议我解析用户输入的最佳实践。

谢谢

3 个答案:

答案 0 :(得分:3)

你可以使用正则表达式,因为它更多是失败证明

 public static Integer tryParseInt(String text) {
    if (text != null && !text.isEmpty()) {
        if (text.trim().matches("[0-9]+")) {
            return Integer.valueOf(text.trim());
        }
    }
    return null;
}

答案 1 :(得分:2)

这是一个非常helpful experiment,我的经验确实是删除异常对性能更好

答案 2 :(得分:1)

如果你获得了很多NumberFormatException,你可以考虑在实际解析之前检查解析输入。

顺便说一下return new Integer( text.trim() );效率不高,因为你要分配很多不必要的对象(在-128到127之间)。

public static Integer tryParseInt(String text) {
    if(text == null)
        return null;

    try {
        return Integer.valueOf(text.trim());
    }
    catch (NumberFormatException e) {
        return null;
    }
}