删除出现的字符,直到出现第一个不同的字符,Java

Remove Character Occurrences Until the First Different One, Java

所以我有一些数字字符串,如下所示:

"00000545468" - "00002021" - "000000001990" 等。(我不知道这些字符串将如何传递给我,我唯一知道的是它们将从左边和后面的一些零开始然后会有其他不同的数字)

我想从左侧 删除所有出现的零 (0) ,直到字符串的第一个不同数字。 因此,例如,如果我有“00002021”,我希望结果为“2021”,如果我有“000000001990”,我想要“1990”。

我排除了 .replace("0", "") 的用法,因为这样做我也会删除“2021”和“1990”中的零,我不希望这种情况发生。

有什么建议吗?

您可以使用 replaceFirst or replaceAll,但重点是 锚定 您的正则表达式,因此它只会替换位于字符串开头的零。

"00002021".replaceFirst("^0+", "")

应该 return 您需要的内容,如果零不在字符串的开头,则不会替换它们。

您可以在 https://www.regexplanet.com/advanced/java/index.html 查看这个(免责声明:我不拥有这个网站,我不会通过链接到它来获利)。