Sentry Answers>Java>

How to check if a String is numeric in Java?

How to check if a String is numeric in Java?

Abdul D.

The Problem

I don’t know how to check if a String is numeric in Java.

The Solution

In Java, there are several ways to check whether a String is numeric, including the following common approaches:

  • Using the Integer.parseInt() or Double.parseDouble() methods
  • Using regular expressions
  • Using the NumberUtils.isCreatable() method from the Apache Commons Lang library

Using Integer.parseInt() or Double.parseDouble()

You can use Integer.parseInt() to check whether a string is numeric by attempting to parse it. If the string is not numeric, a NumberFormatException will be thrown.

Click to Copy
public class Main { public static void main(String[] args) { String numericString = "123"; String nonNumericString = "123a"; System.out.println(isNumeric(numericString)); // 123 = true System.out.println(isNumeric(nonNumericString)); // 123a = false } public static boolean isNumeric(String str) { try { Integer.parseInt(str); return true; } catch (NumberFormatException e) { return false; } } }

In this example, the isNumeric() method attempts to parse the string using Integer.parseInt(). If the parsing fails, it returns false.

Using Regular Expressions

You can use regular expressions to check whether a string is numeric. This method allows for more flexibility in defining what counts as a numeric value.

Click to Copy
public class Main { public static void main(String[] args) { String numericString = "123.45"; String nonNumericString = "123a"; System.out.println(isNumeric(numericString)); // true System.out.println(isNumeric(nonNumericString)); // false } public static boolean isNumeric(String str) { return str.matches("-?\\d+(\\.\\d+)?"); } }

In this example, the regular expression -?\d+(\\.\d+)? checks whether the string is a valid number, optionally allowing for a negative sign and a decimal point.

Using Apache Commons Lang Library

The Apache Commons Lang library provides a utility method NumberUtils.isCreatable() that can be used to check whether a string is numeric.

To use this method, include the following dependency in your project:

Click to Copy
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency>

Then use it as follows:

Click to Copy
import org.apache.commons.lang3.math.NumberUtils; public class Main { public static void main(String[] args) { String numericString = "123.45"; String nonNumericString = "123a"; System.out.println(NumberUtils.isCreatable(numericString)); // true System.out.println(NumberUtils.isCreatable(nonNumericString)); // false } }

The NumberUtils.isCreatable() method can handle integers, floating-point numbers, and even numbers in scientific notation.

  • Sentry BlogException Handling in Java (with Real Examples)
  • Syntax.fmListen to the Syntax Podcast
  • Syntax.fm logo
    Listen to the Syntax Podcast

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

Considered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.

© 2024 • Sentry is a registered Trademark of Functional Software, Inc.