una parte para metodo manejo extraer espacios espacio eliminar detectar declarar caracteres cadenas cadena blanco agregar java whitespace

parte - manejo de cadenas en java



Eliminar espacios en blanco de las cadenas en Java (29)

¿Qué hay de replaceAll("//s", "") . Consulte here .

Tengo una cuerda como esta:

mysz = "name=john age=13 year=2001";

Quiero eliminar los espacios en blanco en la cadena. Intenté trim() pero esto elimina solo los espacios en blanco antes y después de toda la cadena. También intenté replaceAll("//W", "") pero luego = también se elimina.

¿Cómo puedo lograr una cadena con:

mysz2 = "name=johnage=13year=2001"


Deberías usar

s.replaceAll("//s+", "");

en lugar de:

s.replaceAll("//s", "");

De esta manera, funcionará con más de un espacio entre cada cadena. El signo + en la expresión regular anterior significa "uno o más / s"


El código que quieres es

str.replaceAll("//s","");

Esto eliminará todos los espacios en blanco.


El espacio en blanco puede eliminarse utilizando la función isWhitespace de la Clase de caracteres.

public static void main(String[] args) { String withSpace = "Remove white space from line"; StringBuilder removeSpace = new StringBuilder(); for (int i = 0; i<withSpace.length();i++){ if(!Character.isWhitespace(withSpace.charAt(i))){ removeSpace=removeSpace.append(withSpace.charAt(i)); } } System.out.println(removeSpace); }


En java podemos hacer la siguiente operación:

String pattern="[//s]"; String replace=""; part="name=john age=13 year=2001"; Pattern p=Pattern.compile(pattern); Matcher m=p.matcher(part); part=m.replaceAll(replace); System.out.println(part);

Para esto necesitas importar los siguientes paquetes a tu programa:

import java.util.regex.Matcher; import java.util.regex.Pattern;

Espero que te ayude.



Hay otras charlas espaciales que también existen en cadenas. Por lo tanto, es posible que debamos reemplazar las charlas espaciales.

Ej: ESPACIO AUSENTE, ESPACIO TRES POR EM, ESPACIO DE PUNTUACIÓN

Aquí está la lista de space char http://jkorpela.fi/chars/spaces.html

Así que necesitamos modificar

/ u2004 para el ESPACIO TRES-PER-EM

s.replaceAll ("[/ u0020 / u2004]", "")


La forma más sencilla de hacerlo es mediante el uso de la clase commons-lang3 biblioteca commons-lang3 , como " commons-lang3-3.1.jar ", por ejemplo.

Use el método estático " StringUtils.deleteWhitespace(String str) " en su cadena de entrada y le devolverá una cadena después de quitarle todos los espacios en blanco. Probé su cadena de ejemplo " name=john age=13 year=2001 " y me devolvió exactamente la cadena que quería, " name=johnage=13year=2001 ". Espero que esto ayude.


La respuesta más correcta a la pregunta es:

String mysz2 = mysz.replaceAll("//s","");

Acabo de adaptar este código de las otras respuestas. Lo estoy publicando porque, además de ser exactamente lo que solicitó la pregunta, también demuestra que el resultado se devuelve como una nueva cadena, la cadena original no se modifica, como algunas de las respuestas implican.

(Los desarrolladores de Java con experiencia podrían decir "por supuesto, en realidad no se puede modificar una cadena", pero es posible que el público objetivo de esta pregunta no lo sepa).


Para eliminar espacios en tu ejemplo, esta es otra forma de hacerlo:

String mysz = "name=john age=13 year=2001"; String[] test = mysz.split(" "); mysz = String.join("", mysz);

Lo que esto hace es convertirlo en una matriz con los espacios que son los separadores, y luego combina los elementos en la matriz sin los espacios.

Funciona bastante bien y es fácil de entender.


Prueba esto

String str="name=john age=13 year=2001"; String s[]=str.split(" "); StringBuilder v=new StringBuilder(); for (String string : s) { v.append(string); } str=v.toString();


Puede lograr esto sin usar replaceAll () o cualquier método predefinido en Java. de esta manera se prefiere: -

public class RemoveSpacesFromString { public static void main(String[] args) { // TODO Auto-generated method stub String newString; String str = "prashant is good" ; int i; char[] strArray = str.toCharArray(); StringBuffer sb = new StringBuffer(); for(i = 0; i<strArray.length; i++) { if(strArray[i]!= '' '' && strArray[i]!= ''/t'') { sb.append(strArray[i]); } } System.out.println(sb); /*newString = str.replaceAll(" " , ""); System.out.println(newString);*/ } }


Puedes hacerlo tan simplemente por

String newMysz = mysz.replace(" ","");


Separe cada grupo de texto en su propia subcadena y luego concatene esas subcadenas. ex.

public Address(String street, String city, String state, String zip ) { this.street = street; this.city = city; //Now checking to make sure that state has no spaces... int position = state.indexOf(" "); if(position >=0) { //now putting state back together if it has spaces... state = state.substring(0, position) + state.substring(position + 1); }


Si prefiere clases de utilidad a expresiones regulares, hay un método trimAllWhitespace(String) en StringUtils en Spring Framework.


Si también necesitas eliminar los espacios irrompibles, puedes actualizar tu código de esta manera:

st.replaceAll("[//s|//u00A0]+", "");


Una forma de manejar las manipulaciones de cadenas es StringUtils de Apache commons.

String withoutWhitespace = StringUtils.deleteWhitespace(whitespaces);

Puedes encontrarlo here . commons-lang incluye mucho más y está bien soportado.


Usando Pattern And Matcher es más dinámico.

import java.util.regex.Matcher; import java.util.regex.Pattern; public class RemovingSpace { /** * @param args * Removing Space Using Matcher */ public static void main(String[] args) { String str= "jld fdkjg jfdg "; String pattern="[//s]"; String replace=""; Pattern p= Pattern.compile(pattern); Matcher m=p.matcher(str); str=m.replaceAll(replace); System.out.println(str); } }


Usar la clase util de cadena de apache es mejor para evitar NullPointerException

org.apache.commons.lang3.StringUtils.replace("abc def ", " ", "")

Salida

abcdef


Utilice mysz.replaceAll("//s+","");


Ya tienes la respuesta correcta de Gursel Koca, pero creo que hay una buena probabilidad de que esto no sea lo que realmente quieres hacer. ¿Qué hay de analizar los valores-clave en su lugar?

import java.util.Enumeration; import java.util.Hashtable; class SplitIt { public static void main(String args[]) { String person = "name=john age=13 year=2001"; for (String p : person.split("//s")) { String[] keyValue = p.split("="); System.out.println(keyValue[0] + " = " + keyValue[1]); } } }

salida:
nombre = john
edad = 13
año = 2001



st.replaceAll("//s+","") elimina todos los espacios en blanco y los caracteres no visibles (por ejemplo, tab, /n ).

st.replaceAll("//s+","") y st.replaceAll("//s","") producen el mismo resultado.

El segundo regex es 20% más rápido que el primero, pero a medida que aumenta el número de espacios consecutivos, el primero se desempeña mejor que el segundo.

Asigne el valor a una variable, si no se usa directamente:

st = st.replaceAll("//s+","")


String a="string with multi spaces "; //or this String b= a.replaceAll("//s+"," "); String c= a.replace(" "," ").replace(" "," ").replace(" "," ").replace(" "," ").replace(" "," ");

// funciona bien con cualquier espacio * no olvides el espacio en sting b


import java.util.*; public class RemoveSpace { public static void main(String[] args) { String mysz = "name=john age=13 year=2001"; Scanner scan = new Scanner(mysz); String result = ""; while(scan.hasNext()) { result += scan.next(); } System.out.println(result); } }


mysz = mysz.replace(" ","");

Primero con espacio, segundo sin espacio.

Entonces se hace.


public static String removeWhiteSpaces(String str){ String s = ""; char[] arr = str.toCharArray(); for (int i = 0; i < arr.length; i++) { int temp = arr[i]; if(temp!=32 && temp!=9){ // 32 ASCII for space and 9 is for Tab s+=arr[i]; } } return s; }

Esto podría ayudar.


public static void main(String[] args) { String s = "name=john age=13 year=2001"; String t = s.replaceAll(" ", ""); System.out.println("s: " + s + ", t: " + t); } Output: s: name=john age=13 year=2001, t: name=johnage=13year=2001


replaceAll("//s","")

/w = Cualquier cosa que sea un carácter de palabra

/W = Cualquier cosa que no sea un carácter de palabra (incluida la puntuación, etc.)

/s = Cualquier cosa que sea un carácter de espacio (incluyendo espacio, caracteres de tabulación, etc.)

/S = Cualquier cosa que no sea un carácter de espacio (incluyendo letras y números, así como puntuación, etc.)

(Editar: Como se señaló, debe escapar de la barra diagonal inversa si desea que llegue al motor de expresiones regulares, lo que resulta en //s ).