Convert String to Integer with default value

  • I want to convert a java.lang.String to a java.lang.Integer, assigning a default value of 0 if the String is not convertible. Here is what I came up with. I would appreciate an assesment of this approach.



    To be honest, it feels a little squirrely to me:



    String strCorrectCounter = element.getAttribute("correct");
    Integer iCorrectCounter = new Integer(0);
    try {
    iCorrectCounter = new Integer(strCorrectCounter);
    } catch (Exception ignore) { }

  • Paritosh

    Paritosh Correct answer

    8 years ago

    here is a solution :



    int tryParseInt(String value) { 
    try {
    return Integer.parseInt(value);
    } catch(NumberFormatException nfe) {
    // Log exception.
    return 0;
    }
    }


    you should catch NumberFormatException instead of exception.


    +1 for catching the correct exception and using `parseInt()` so a cached `Integer` can be returned instead of guaranteeing that a new instance is returned.

License under CC-BY-SA with attribution


Content dated before 7/24/2021 11:53 AM

Tags used