Necesito dividir mi cadena por espacios. Para esto probé:
str = "Hello I'm your String";
String[] splited = str.split(" ");
Pero no parece funcionar.
fork
enlace cerca de la esquina superior izquierda.
Necesito dividir mi cadena por espacios. Para esto probé:
str = "Hello I'm your String";
String[] splited = str.split(" ");
Pero no parece funcionar.
fork
enlace cerca de la esquina superior izquierda.
Respuestas:
Lo que tienes debería funcionar. Sin embargo, si los espacios provistos están predeterminados a ... ¿algo más? Puede 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 su cadena en tokens.
Como nota al margen, no estoy seguro de que "dividir" sea una palabra :) Creo que el estado de ser víctima de una división también es "división". Es una de esas cosas gramaticales complicadas :-) ¡No trato de ser exigente, solo pensé que lo transmitiría!
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";
Por lo tanto, es posible que desee recortar su cadena antes de dividirla:
String str = " Hello I'm your String";
String[] splitStr = str.trim().split("\\s+");
Se usa Stringutils.split()
para dividir la cuerda por espacios en blanco. Por ejemplo, StringUtils.split("Hello World")
devuelve "Hola" y "Mundo";
Para resolver el caso mencionado usamos un método dividido como este
String split[]= StringUtils.split("Hello I'm your String");
Cuando imprimimos la matriz dividida, la salida será:
Hola
estoy
tu
Cuerda
Para ver una demostración de ejemplo completa, consulte aquí
Tratar
String[] splited = str.split("\\s");
http://download.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html
si de alguna manera no quieres usar el método de división de cadenas, puedes 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;
}
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);
Bien, entonces tenemos que dividirnos, ya que ya obtuviste 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, tabulación, etc.
String s = str1.replaceAll("^\\s+","");//starting with whitespace one or more
Ahora si quieres dividir por espacio o cualquier carácter 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 subrayado (_) también use
String[] sa = s.split("[!,? ._'@]+");//for str2 after removing leading space
replaceAll("^\\s+","")
me salvó el día. Eso funcionó para mi caso. Gracias
puedes separar 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"
Como ha pasado un tiempo desde que se publicaron estas respuestas, aquí hay otra forma más actual de hacer lo que se pide:
List<String> output = new ArrayList<>();
try (Scanner sc = new Scanner(inputString)) {
while (sc.hasNext()) output.add(sc.next());
}
Ahora tiene una lista de cadenas (que posiblemente sea mejor que una matriz); si necesitas una matriz, puedes haceroutput.toArray(new String[0]);
Cadena simple para escupir 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());
}
}