Comment au sujet de la regex façon:
String s = "001234-a";
s = s.replaceFirst ("^0*", "");
L' ^
ancres pour le début de la chaîne (je suis en supposant à partir du contexte de vos chaînes ne sont pas multi-ligne ici, sinon vous pouvez avoir besoin de regarder en \A
pour le début de l'entrée, plutôt que de début de ligne). L' 0*
signifie zéro ou plus 0
caractères (vous pourriez utiliser 0+
). L' replaceFirst
, remplace simplement tous ceux - 0
des personnages à la commencer avec rien.
Et si, comme Vadzim, votre définition de zéros ne comprend pas tourner "0"
(ou "000"
ou des chaînes similaires) en une chaîne vide (un rationnel suffisamment d'attente), il suffit de le mettre en arrière si nécessaire:
String s = "00000000";
s = s.replaceFirst ("^0*", "");
if (s.isEmpty()) s = "0";