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;
}
Tratar
String[] splited = str.split("//s");
http://download.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html
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
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());
}
}