This example show you how to check if a string content is numeric or not. It provide totally six methods to use.
package com.dev2qa.calculatorexample; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by zhaosong on 2018/5/23. */ public class CheckStringNumeric { public static void main(String args[]) { CheckStringNumeric checkStringNumeric = new CheckStringNumeric(); checkStringNumeric.isNumeric("-123.45"); checkStringNumeric.isInteger("-123"); checkStringNumeric.isIntegerByParse("-123.456"); checkStringNumeric.isDoubleByParse("-123.456789"); checkStringNumeric.isFloatByParse("-123.11111"); checkStringNumeric.isBooleanByParse("true"); } /* Use Character class's isDigit method to check each char in string. */ public boolean isNumeric(String value) { boolean ret = true; if (value != null) { value = value.trim(); // Get total char number. int length = value.length(); // Record total decimal point number in this string. int decimalPointCount = 0; for (int i = 0; i < length; i++) { // Get each char. char c = value.charAt(i); // Check whether the char is a digit or not. if (!Character.isDigit(c)) { if(i==0) { // Means positive or negative number. if(c=='+' || c=='-') { continue; } }else { // Means the decimal point. if(c=='.') { decimalPointCount++; // If there are two or more decimal point in the string then it is not a number. if(decimalPointCount > 1) { ret = false; break; }else { continue; } } } ret = false; break; } } } if(ret) { System.out.println(value + " is a number."); }else { System.out.println(value + " is not a number."); } return ret; } /* Check integer value by regular expression string. */ public boolean isInteger(String value) { String regularExpression = "^[-\\+]?[\\d]*$"; Pattern pattern = Pattern.compile(regularExpression); Matcher matcher = pattern.matcher(value); boolean ret = matcher.matches(); if(ret) { System.out.println(value + " is an integer."); }else { System.out.println(value + " is not an integer."); } return ret; } /* Check string integer value by Integer class. */ public boolean isIntegerByParse(String value){ boolean ret = true; try { if (value != null) { Integer.parseInt(value); } }catch(NumberFormatException ex) { // If parseInt() method throw NumberFormatException then it is not an integer. ret = false; }finally { if(ret) { System.out.println(value + " is an integer."); }else { System.out.println(value + " is not an integer."); } return ret; } } /* Check whether the string value is a double value or not by Double.parseDouble() method. */ public boolean isDoubleByParse(String value){ boolean ret = true; try { if (value != null) { Double.parseDouble(value); } }catch(NumberFormatException ex) { ret = false; }finally { if(ret) { System.out.println(value + " is a double number."); }else { System.out.println(value + " is not a double number."); } return ret; } } /* Check whether the string value is a float value or not by Float.parseFloat() method. */ public boolean isFloatByParse(String value){ boolean ret = true; try { if (value != null) { Float.parseFloat(value); } }catch(NumberFormatException ex) { ret = false; }finally { if(ret) { System.out.println(value + " is a float number."); }else { System.out.println(value + " is not a float number."); } return ret; } } /* Check whether the string value is a boolean value or not by Boolean.parseBoolean() method. */ public boolean isBooleanByParse(String value){ boolean ret = true; try { if (value != null) { Boolean.parseBoolean(value); } }catch(NumberFormatException ex) { ret = false; }finally { if(ret) { System.out.println(value + " is a boolean value."); }else { System.out.println(value + " is not a boolean value."); } return ret; } } }
The output in console log is as below.
-123.45 is a number. -123 is an integer. -123.456 is not an integer. -123.456789 is a double number. -123.11111 is a float number. true is a boolean value.