How to Extract Digits from a String in Java

When you're working with strings that you don't control, they can come with both numbers and alphabetical characters.
If you only want the digits, you will have to extract it out of the string.
In this post, we'll learn how to extract digits from a string in Java.
How to Extract Digits from a String
To start, let's define a string that includes numbers:
String string = "Hello World 123";
The easiest way to extract the numbers is to remove all the non-numeric characters with the replaceAll
method.
We can pass in a regex expression that will match all non-numeric characters, and replace it with a blank string.
String string = "Hello World 123";
String digits = string.replaceAll("[^0-9]", "");
System.out.println(digits);
123
The magic is in the regular expression that we pass in as the first parameter of the replaceAll
method.
Because it will only match non-numeric characters, the only thing left are numerical ones.
Another way to accomplish the same task is to first compile the expression and then reuse it to replace the string.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class HelloWorld {
public static void main(String[] args) {
String string = "Hello World 123";
Pattern pattern = Pattern.compile("[^0-9]");
Matcher matcher = pattern.matcher(string);
String digits = matcher.replaceAll("");
System.out.println(digits);
}
}
123
Conclusion
In this post, we learned how to extract digits from a string in Java.
Simply use the replaceAll
method to remove all non-numeric characters and replace them with a blank string.
Thanks for reading and happy coding!
If you want to learn about web development, founding a start-up, bootstrapping a SaaS, and more, follow me on Twitter! You can also join the conversation over at our official Discord!
Leave us a message!