Java - problema con split(".")

 
Vista:

problema con split(".")

Publicado por Marc (6 intervenciones) el 23/08/2007 12:21:51
Hola necesito poder separar una frase que esta unida por puntos. He probado lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String[] args) {
 
	String frase1 = "hola_mundo";
 
	System.out.println("Se han encontrado: " + frase1.split("_").length + " palabras");
	System.out.println(" - Palabra 1: " + frase1.split("_")[0]);
	System.out.println(" - Palabra 2: " + frase1.split("_")[1]);
	String frase2 = "hola.mundo";
 
	System.out.println("Se han encontrado: " + frase2.split(".").length + " palabras");
	System.out.println(" - Palabra 1: " + frase2.split(".")[0]);
	System.out.println(" - Palabra 2: " + frase2.split(".")[1]);
}

El programa muestra en la consola:

Se han encontrado: 2 palabras
- Palabra 1: hola
- Palabra 2: mundo
Se han encontrado: 0 palabras
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Pruebas.main(Pruebas.java:19)

Alguien me puede explicar por que el metodo split, no funciona cuando se le especifica el caracter punto "." como delimitador?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:problema con split(

Publicado por chuidiang (950 intervenciones) el 23/08/2007 13:07:17
Hola:

Para poder usar patrones más complejos, split() admite en su cadena caracteres especiales, como el * o el ? a la hora de listar ficheros.

El punto . en split significa cualquier caracter, así que todos valen. Para usar el punto, debes "escaparlo" con una \ delante

cadena.split ("\.")

En http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html tienes cómo construir estos patrones más complejos.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por Marc (6 intervenciones) el 23/08/2007 16:28:03
muchas gracias por la respuesta aunque no es del todo correcta. La solución es usando dos barras invertidas:

split("\\.")

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:problema con split(

Publicado por noe (1 intervención) el 31/08/2007 04:12:49
TAmbien puedes marcarlo como una expresión regular entre corchetes
expReg = "[,;.:]";

linea.split(expReg,-1);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:problema con split(

Publicado por daniel (3 intervenciones) el 05/05/2017 19:55:29
solucionado, amigo esta es la solución definitiva:

1
2
3
4
5
6
String linea="Hola, me llamo Daniel y soy del Barcelona.";
	String separadores = "[ .,;?!¡¿\'\"\\[\\]]+";
	String aux[] = linea.split(separadores);
	for(String s:aux) {
	System.out.println(s);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por Hola ! (1 intervención) el 11/10/2007 09:56:33
hablo un poquito espanol... not enough... so i prefer to speak english :)
I hope u already found the solution... just in case... here is the way to split with a point.

split("\\.")

Bonne continuation amigo !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:problema con split(

Publicado por yenifer (1 intervención) el 10/05/2016 05:56:55
excelente muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por Sano24  (1 intervención) el 26/11/2007 16:33:25
Tiene q ir de este modo split("[.]") con corchetes bruto. Estudia los libros
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por Jaime Holguin (1 intervención) el 28/11/2007 00:07:46
Ok.

Muchas Gracias.

A mi me ayudó tu respuesta, aunque no soy bruto y si leo los libros.

Jajajaja.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por daniel (1 intervención) el 29/01/2008 20:11:57
Intenta esto

split("\.")[0]);

System.out.println("Se han encontrado: " + frase2.split("\.").length + " palabras");
System.out.println(" - Palabra 1: " + frase2.split("\.")[0]);
System.out.println(" - Palabra 2: " + frase2.split("\.")[1]);
}

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema con split(

Publicado por Alberto (1 intervención) el 14/02/2008 02:28:40
Bueno, para eso tienes que poner split("\.") aunque por el momento estoy buscando como puedo separar oraciones por retorno de carro, lo probé con split(" ") o split(" ") pero no me lo acepta, pero el del punto si lo toma, sale espero que te haya servido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por Maxs Riveros (1 intervención) el 30/10/2008 17:51:05
Para separar cadenas de texto y números unidos por el caracter punto '.' usar:
split("\.")

espero les sirva,

Saludos
Max´s
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema con split(

Publicado por Orantz (1 intervención) el 23/05/2012 12:44:58
Esto se hace con .split("\n"); y si es tabulador .split("\t"); SALUDOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por Adalberto (1 intervención) el 02/04/2008 23:01:01
Mira este en este link:

http://www.rgagnon.com/javadetails/java-0438.html

ahi se usa asi split("\.") a mi me funcionó

:D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por ramingo (1 intervención) el 07/05/2009 17:39:30
prueba con corchetes el el punto

cadena_puntos.split("[.]")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por Pedro (1 intervención) el 04/03/2010 23:47:51
buenoas tardes;

Ahora que tengo los numero separados como hago para poder capturarlo y asignarle un nombre:

ejemplo:

- # 1: 192
- #: 168
Y NECESITO HACER UNA OPERACION CON EL 2 NUMERO COMO LO CAPTURO.

GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por Roberto (1 intervención) el 31/03/2010 10:46:29
Puedes probar a definir el punto como un string: String punto = "." y pasarselo como argumento al método split
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con split(

Publicado por Rocky (1 intervención) el 21/04/2011 21:37:56
Tengo un problema se que el split solo lee cadenas pero si quiero leer int o double como puedo hacer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sebastian
Val: 282
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

RE:problema con split(

Publicado por Sebastian (91 intervenciones) el 12/07/2017 23:06:08
conviertes el entero o el double a String y le aplicas el split

1
2
3
4
5
//si es entero
String num= Integer.toString("variable de tipo entera");
//si es double
String num=Double.toString("variable de tipo double ");
// y luego aplicas el .split()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar