How to extract digits from a string in Java

There are various ways to extract digits from a string in Java. The easiest and straightforward solution is to use the regular expression along with the String.replaceAll() method.

The following example shows how you can use the replaceAll() method to extract all digits from a string in Java:

// string contains numbers
String str = "The price of the book is $49";

// extract digits only from strings
String numberOnly = str.replaceAll("[^0-9]", "");

// print the digitts
System.out.println(numberOnly);

The above example will output 49 on the console. Notice the regular expression [^0-9] we used above. It indicates that replace everything except digits from 0 to 9 with an empty string. This is precisely what we need.

Alternatively, You can also use \\D+ as a regular expression because it produces the same result:

String numberOnly = str.replaceAll("\\D+", "");

The replaceAll() method compiles the regular expression every time it executes. It works for simple use cases but is not an optimal approach. You should rather use the Pattern class to compile the given regular expression into a pattern as shown below:

Pattern pattern = Pattern.compile("[^0-9]");
String numberOnly = pattern.matcher(str).replaceAll("");

✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.

You might also like...

Digital Ocean

The simplest cloud platform for developers & teams. Start with a $200 free credit.

Buy me a coffee ☕

If you enjoy reading my articles and want to help me out paying bills, please consider buying me a coffee ($5) or two ($10). I will be highly grateful to you ✌️

Enter the number of coffees below:

✨ Learn to build modern web applications using JavaScript and Spring Boot

I started this blog as a place to share everything I have learned in the last decade. I write about modern JavaScript, Node.js, Spring Boot, core Java, RESTful APIs, and all things web development.

The newsletter is sent every week and includes early access to clear, concise, and easy-to-follow tutorials, and other stuff I think you'd enjoy! No spam ever, unsubscribe at any time.