regex to strip leading zeros treated as string

If you know input strings are all containing digits then you can do:

String s = "00000004334300343";
System.out.println(Long.valueOf(s));
// 4334300343

Code Demo

By converting to Long it will automatically strip off all leading zeroes.


You're almost there. You just need quantifier:

str = str.replaceAll("^0+", "");

It replaces 1 or more occurrences of 0 (that is what + quantifier is for. Similarly, we have * quantifier, which means 0 or more), at the beginning of the string (that's given by caret - ^), with empty string.


Accepted solution will fail if you need to get "0" from "00". This is the right one:

str = str.replaceAll("^0+(?!$)", "");

^0+(?!$) means match one or more zeros if it is not followed by end of string.

Thank you to the commenter - I have updated the formula to match the description from the author.

Tags:

Java

Regex