Sometimes we need to check whether the user input is a valid number or not. If not, we need to tell the user to input a valid number again. In this example, we will show you two methods about how to verify a valid numeric value in a Java String variable.
1. Use Double.parseDouble() and Integer.parseInt().
/* Use Double and Integer parse method to check. */ private static boolean ifValidNumber(String str) { boolean ret = true; try { if(str!=null) { str = str.trim(); int dotIndex = str.indexOf("."); /* If contain dot, then it should be a double number.*/ if(dotIndex>-1) { Double.parseDouble(str); }else { /*If not contain dot, then it should be a integer String. */ Integer.parseInt(str); } } }catch(NumberFormatException ex) { /* If parse String method throw a NumberFormatException, then it is not a String. */ ex.printStackTrace(); ret = false; } return ret; }
2. Use Apache Commons Lang StringUtils.
- Go to Apache Commons Lang Project Home Page.
- Click the Download link in the left panel.
- Download the latest stable version of Apache Commons Lang on the download page.
- Extract the download zip file into a local folder, such as C:/WorkSpace/dev2qa.com/Lib.
- Add the commons-lang3-3.6.jar file into your java project’s build path. Right-click the java project, click ” Build Path —> Configure Build Path “.
- Click the ” Add External JARS ” button in the popup dialog.
- Browse to the extracted zip file folder, select commons-lang3-3.6.jar. Click OK to add it.
- Now you can use the below java code to implement this function.
/* Use Apache Commons Lang project StringUtils to check. */ private static boolean ifValidNumberByApacheCommonsLang(String strNum) { boolean ret = StringUtils.isNumeric(strNum); return ret; }
3. Java Main Method.
public static void main(String[] args) { String strArr[] = {"123", "12.3", "123df56", "abcde", "!@iij"}; for(String strNum : strArr) { //boolean isValidNumber = CheckValidNumberInJavaString.ifValidNumber(strNum); boolean isValidNumber = CheckValidNumberInJavaString.ifValidNumberByApacheCommonsLang(strNum); if(isValidNumber) { System.out.println(strNum + " is a valid number"); }else { System.out.println(strNum + " is not a valid number"); } } }