una son separar por parte palabra numeros los letras extraer espacio delimitadores cuales caracter cadena blanco java string split arrays

java - son - Cómo dividir una cadena por el espacio



split java espacio en blanco (14)

Aquí hay un método para recortar una cadena que tiene un espacio "," o blanco

private String shorterName(String s){ String[] sArr = s.split("//,|//s+"); String output = sArr[0]; return output; }

Necesito dividir mi cadena por espacios. Para esto intenté:

str = "Hello I''m your String"; String[] splited = str.split(" ");

Pero no parece funcionar.


Como ha pasado un tiempo desde que se publicaron estas respuestas, aquí hay otra manera más actual de hacer lo que se le pide:

List<String> output = new ArrayList<>(); try (Scanner sc = new Scanner(inputString)) { while (sc.hasNext()) output.add(sc.next()); }

Ahora tienes una lista de cadenas (que posiblemente sea mejor que una matriz); si necesita una matriz, puede hacer output.toArray(new String[0]);


Creo que poner una expresión regular entre paréntesis str.split debería resolver el problema. El método String.split () de Java se basa en expresiones regulares, por lo que lo que necesita es:

str = "Hello I''m your String"; String[] splitStr = str.split("//s+");


Ejemplo muy simple a continuación:

Espero eso ayude.

String str = "Hello I''m your String"; String[] splited = str.split(" "); var splited = str.split(" "); var splited1=splited[0]; //Hello var splited2=splited[1]; //I''m var splited3=splited[2]; //your var splited4=splited[3]; //String


Lo que tienes debe funcionar. Si, sin embargo, los espacios provistos están predeterminados a ... ¿algo más? Puedes usar la expresión regular de espacios en blanco:

str = "Hello I''m your String"; String[] splited = str.split("//s+");

Esto hará que cualquier número de espacios consecutivos divida tu cadena en tokens.

Como nota al margen, no estoy seguro de que "splited" sea una palabra :) Creo que el estado de ser víctima de una división también es "split". Es una de esas cosas difíciles de la gramática :-) No tratar de ser exigente, ¡solo pensé que lo pasaría!


OK, entonces tenemos que hacer la división ya que ya tienes la respuesta, la generalizaría.

Si desea dividir cualquier cadena por espacios, delimitador (caracteres especiales).

Primero, elimine el espacio inicial ya que crean la mayoría de los problemas.

str1 = " Hello I''m your String "; str2 = " Are you serious about this question_ boy, aren''t you? ";

Primero elimine el espacio inicial que puede ser espacio, pestaña, etc.

String s = str1.replaceAll("^//s+","");//starting with whitespace one or more

Ahora si quieres dividir por espacio o cualquier char especial.

String[] sa = s.split("[^//w]+");//split by any non word char

Pero como w contiene [a-zA-Z_0-9], si desea dividir por guión bajo (_), también use

String[] sa = s.split("[!,? ._''@]+");//for str2 after removing leading space


Prueba este

String str = "This is String"; String[] splited = str.split("//s+"); String split_one=splited[0]; String split_second=splited[1]; String split_three=splited[2]; Log.d("Splited String ", "Splited String" + split_one+split_second+split_three);


Puedes afilar la cadena usando el siguiente código

String thisString="Hello world"; String[] parts = theString.split(" "); String first = parts[0];//"hello" String second = parts[1];//"World"


Si bien la respuesta aceptada es buena, tenga en cuenta que terminará con una cadena vacía inicial si su cadena de entrada comienza con un espacio en blanco. Por ejemplo, con:

String str = " Hello I''m your String"; String[] splitStr = str.split("//s+");

El resultado será:

splitStr[0] == ""; splitStr[1] == "Hello"; splitStr[2] == "I''m"; splitStr[3] == "Your"; splitStr[4] == "String";

Así que es posible que desee recortar su cadena antes de dividirla:

String str = " Hello I''m your String"; String[] splitStr = str.trim().split("//s+");


Si de alguna manera no quiere usar el método de división de cadenas, puede usar la clase StringTokenizer en Java como ...

StringTokenizer tokens = new StringTokenizer("Hello I''m your String", " "); String[] splited = new String[tokens.countTokens()]; int index = 0; while(tokens.hasMoreTokens()){ splited[index] = tokens.nextToken(); ++index; }



Una forma alternativa sería:

import java.util.regex.Pattern; ... private static final Pattern SPACE = Pattern.compile(" "); String[] arr = SPACE.split(str); // str is the string to be split

Lo vi here


Use Stringutils.split() para dividir la cadena por pasos de blancos. Por ejemplo, StringUtils.split("Hello World") devuelve "Hello" y "World";

Para resolver el caso mencionado usamos un método de división como este.

String split[]= StringUtils.split("Hello I''m your String");

Cuando imprimamos la matriz dividida, la salida será:

Hola

soy

tu

Cuerda

Para ver el ejemplo completo, compruebe aquí.


Sencillo de escupir cadena por espacio

String CurrentString = "First Second Last"; String[] separated = CurrentString.split(" "); for (int i = 0; i < separated.length; i++) { if (i == 0) { Log.d("FName ** ", "" + separated[0].trim() + "/n "); } else if (i == 1) { Log.d("MName ** ", "" + separated[1].trim() + "/n "); } else if (i == 2) { Log.d("LName ** ", "" + separated[2].trim()); } }