Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

Metodo split de Java

Participa en el tema Metodo split de Java en el foro Programación.
Hola!! Espero que me puedan ayudar para saber porque mi código no corre... pero si ...

Buscar en este tema:
 
  •  
    karigb escribió hace 1 mes
     
    ¿Mensaje inapropiado?
    #1 Metodo split de Java
    Hola!! Espero que me puedan ayudar para saber porque mi código no corre... pero si compila...

    public class Test {
    public static void main (String [] args){
    String test="This+is+a+test";
    String[] tokens= test.split("+");
    for (int i = 0; i < tokens.length; i++) {
    System.out.println(tokens[i]);
    }
    }
    }

    Los errores que me manda son:
    No tests found in Test
    junit.framework.AssertionFailedError

    Por la documentacion que he encontrado de este metodo esta correcto su uso... peero no entiendo porque no corre...
    Mil gracias...
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: Metodo split de Java

    Renombra la clase Test con otro nombre. Puede pasar que con ese nombre te este configurando automaticamente la clase como parte del framework de testing "junit".
    Proba quitando las librerias junit* al proyecto.
    Me gusta este mensaje
  • #3 Re: Metodo split de Java

    Hola!! Gracias por responder... Ya cambie el nombre de la clase y si compila, peero:

    Este es el codigo:
    public class EjemploSplit {
    public static void main (String [] args){
    String test="This+is+a+test";
    String[] tokens= test.split("+");
    for (int i = 0; i < tokens.length; i++) {
    System.out.println(tokens[i]);
    }
    }
    }

    Este es el mensaje de error:
    Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
    +
    ^
    at java.util.regex.Pattern.error(Pattern.java:1713)
    at java.util.regex.Pattern.sequence(Pattern.java:1878 )
    at java.util.regex.Pattern.expr(Pattern.java:1752)
    at java.util.regex.Pattern.compile(Pattern.java:1460)
    at java.util.regex.Pattern.<init>(Pattern.java:1133)
    at java.util.regex.Pattern.compile(Pattern.java:823)
    at java.lang.String.split(String.java:2293)
    at java.lang.String.split(String.java:2335)
    at EjemploSplit.main(EjemploSplit.java:13)
    Java Result: 1

    Espero que me puedan ayudar... Mil gracias...
    Me gusta este mensaje
  • #4 Re: Metodo split de Java

    Originalmente publicado por karla gonzalez Ver mensaje
    Hola!! Gracias por responder... Ya cambie el nombre de la clase y si compila, peero:

    Este es el codigo:
    public class EjemploSplit {
    public static void main (String [] args){
    String test="This+is+a+test";
    String[] tokens= test.split("+");
    for (int i = 0; i < tokens.length; i++) {
    System.out.println(tokens[i]);
    }
    }
    }

    Este es el mensaje de error:
    Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
    +
    ^
    at java.util.regex.Pattern.error(Pattern.java:1713)
    at java.util.regex.Pattern.sequence(Pattern.java:1878 )
    at java.util.regex.Pattern.expr(Pattern.java:1752)
    at java.util.regex.Pattern.compile(Pattern.java:1460)
    at java.util.regex.Pattern.<init>(Pattern.java:1133)
    at java.util.regex.Pattern.compile(Pattern.java:823)
    at java.lang.String.split(String.java:2293)
    at java.lang.String.split(String.java:2335)
    at EjemploSplit.main(EjemploSplit.java:13)
    Java Result: 1

    Espero que me puedan ayudar... Mil gracias...
    El tema esta en que el Split de la clase java.lang.String internamente usa una regular expression para separar el string en tokens... Entonces usa el string que le pases como parametro como regular expression para separar...

    Como el caracter + es un caracter reservado de regular expressions lo toma como una expresion regular no valida... Trata escapeando el caracter con un \ antes...

    Proba con test.split("\+");
    Me gusta este mensaje
  • #5 Re: Metodo split de Java

    mmm... intente anteponerle / antes de + peero...
    public class Ejemploequals{
    public static void main(String[] args){
    String test="This+is+a+test";
    String[] tokens= test.split("/+");
    for (int i = 0; i < tokens.length; i++) {
    System.out.println(tokens[i]);
    }
    }
    }
    Y ahora no me envía error cuando corro el programa... pero no me separa la cadena... Esto es lo que aparece cuando corro el programa:
    init:
    deps-jar:
    compile-single:
    run-single:
    This+is+a+test
    BUILD SUCCESSFUL (total time: 0 seconds)

    Espero que me puedan ayudar...
    Gracias.
    -----Agregado el 19/10/2009 a las 02 : 17 : 47-----
    se me olvido comentar que cuando coloque \ me aparecio:
    init:
    deps-jar:
    Compiling 1 source file to C:\JAVA\Simuladores\build\classes
    C:\JAVA\Simuladores\src\Ejemploequals.java:13: illegal escape character
    String[] tokens= test.split("\+");
    1 error
    BUILD FAILED (total time: 0 seconds)
    Fue por lo anterior, que opte por cambiar la diagonal...
    Editado por karigb - 19.10.2009 14:17 hs. | Motivo: Mensajes unidos automáticamente
    Me gusta este mensaje
  • #6 Re: Metodo split de Java

    Usá "\\+"
    Me gusta este mensaje
  • #7 Re: Metodo split de Java

    Muuuchas gracias!! asi si corre el programa... me podrias decir la razon de usar \\+ en lugar de \+
    Me gusta este mensaje
  • #8 Re: Metodo split de Java

    Entre comillas \ es especial. Siempre va seguido de otro caracter y la combinación representa algún caracter que es imposible (o difícil) introducir de otra manera. Por ejemplo, si querés un string con una comilla adentro, no podés escribir "acá hay una comilla -->"<--", porque la comilla terminaría la cadena de caracteres. Pero el compilador reconoce la secuencia \" (y la interpreta como ") y podés escribir "acá hay una comilla -->\"<--" sin error.

    Siempre que el compilador ve una contrabarra dentro de un string, espera una secuencia de este tipo. "\+" no es una secuencia que reconozca, por eso te tira error. Como la contrabarra se usa para estas secuencias especiales, si necesitás una contrabarra en un string no la podés poner directamente. Por suerte hay una secuencia para representar una contrabarra: dos contrabarras.

    Como a split tenés que pasarle un string con una contrabarra adentro, tenés que usar \\ para representarla.

    Saludos.
    Me gusta este mensaje
  • #9 Re: Metodo split de Java

    Muchisimas gracias por su ayuda...
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 8 RESPUESTAS
  • 1031 VISTAS
  • 4 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB