Si hallas algún problema con tu código o proyecto, recuerda probar siempre en un ambiente de testing antes subir el código al trabajo final.
Solución:
Regex es la mejor herramienta para el trabajo; lo que debería ser depende de la especificación del problema. Lo siguiente elimina los ceros a la izquierda, pero deja uno si es necesario (es decir, no solo convertiría "0"
a un espacio en blanco string).
s.replaceFirst("^0+(?!$)", "")
los ^
ancla se asegurará de que el 0+
siendo emparejado está al principio de la entrada. los (?!$)
la búsqueda anticipada negativa asegura que no todo el string será emparejado.
Arnés de prueba:
String[] in =
"01234", // "[1234]"
"0001234a", // "[1234a]"
"101234", // "[101234]"
"000002829839", // "[2829839]"
"0", // "[0]"
"0000000", // "[0]"
"0000009", // "[9]"
"000000z", // "[z]"
"000000.z", // "[.z]"
;
for (String s : in)
System.out.println("[" + s.replaceFirst("^0+(?!$)", "") + "]");
Ver también
- expresiones-regulares.info
- repeticiones, miradas alrededor y anclas
String.replaceFirst(String regex)
Puede usar la clase StringUtils de Apache Commons Lang así:
StringUtils.stripStart(yourString,"0");
¿Qué tal la forma de expresión regular:
String s = "001234-a";
s = s.replaceFirst ("^0*", "");
los ^
anclas al inicio de la string (Supongo por contexto que sus cadenas no son de varias líneas aquí, de lo contrario, es posible que deba investigar A
para el inicio de la entrada en lugar del inicio de la línea). los 0*
significa cero o más 0
personajes (usted pudo usar 0+
también). los replaceFirst
simplemente reemplaza a todos esos 0
personajes al principio sin nada.
Y si, como Vadzim, su definición de ceros a la izquierda no incluye girar "0"
(o "000"
o cadenas similares) en un espacio vacío string (una expectativa lo suficientemente racional), simplemente vuelva a colocarlo si es necesario:
String s = "00000000";
s = s.replaceFirst ("^0*", "");
if (s.isEmpty()) s = "0";
Te mostramos las reseñas y valoraciones de los usuarios
Eres capaz de amparar nuestro trabajo dejando un comentario o dejando una valoración te damos la bienvenida.