remove length espacios eliminar blanco java trim

length - Java: ¿corta los caracteres iniciales o finales de una cadena?



substring java (6)

¿Cómo puedo recortar los caracteres iniciales o finales de una cadena en java?

Por ejemplo, el carácter de barra inclinada "/" - No me interesan los espacios, y estoy buscando recortar los caracteres iniciales o finales en diferentes momentos.


Recortar con Character, String o Regex

Si el tiempo de ejecución no es un gran problema para usted, entonces este código será realmente útil.

public class StringTrimmer { public static String trim(String string, char ch){ return trim(string, ch, ch); } public static String trim(String string, char leadingChar, char trailingChar){ return string.replaceAll("^["+leadingChar+"]+|["+trailingChar+"]+$", ""); } public static String trim(String string, String regex){ return trim(string, regex, regex); } public static String trim(String string, String leadingRegex, String trailingRegex){ return string.replaceAll("^("+leadingRegex+")+|("+trailingRegex+")+$", ""); } // test public static void main(String[] args) { System.out.println(trim("110100", ''1'', ''0'')); // outputs: 01 System.out.println(trim("**Aa0*#**", ''*'')); // outputs: Aa0*# System.out.println(trim("123##22222", "12", "22")); // outputs: 3##2 System.out.println(trim("101101##10101", "101")); // outputs: ##10 System.out.println(trim("123##abcde", "//d", "[c-e]")); // outputs: ##ab } }


Mi versión de recortar String s principal y / o posterior desde String str. Ambos argumentos pueden ser nulos. Cuando str no tiene valores iniciales y / o finales, no se cambia.

String trim(String str, String s) { String res = s == null ? str : str == null ? null : s.length() >= str.length() ? str : str.replaceFirst(s, ""); if ((res != null) && (s != null) && (res.length() >= s.length())) { return res.substring(res.length() - s.length(), res.length()).equals(s) ? res.substring(0, res.length() - s.length()) : res; } return res; }



Podrías usar

Líder:

System.out.println("//test/me".replaceAll("^/+", ""));

Atrás:

System.out.println("//test/me//".replaceAll("/+$", ""));


Puede usar una iteración simple si desea eliminar los caracteres iniciales de una cadena:

String removeLeadingChar(String s, char c) { int i; for(i = 0; i < s.length() && s.charAt(i) == c; ++i); return s.substring(i); }

Se aplica la misma lógica si desea eliminar cualquier char posterior.


Puede utilizar Apache StringUtils.stripStart para recortar caracteres StringUtils.stripEnd o StringUtils.stripEnd para recortar caracteres finales.

Por ejemplo:

System.out.println(StringUtils.stripStart("//test/me", "/"));

dará salida:

pruebame

Tenga en cuenta que si por alguna razón no puede usar toda la biblioteca de StringUtils, puede extraer las partes relevantes, como se detalla aquí :