Java - Me podrias decir como hago para que me de true..?

 
Vista:

Me podrias decir como hago para que me de true..?

Publicado por Daniel (17 intervenciones) el 21/11/2007 19:45:28
Hola a todos
Alguien me podría decir cual es la sintaxis correcta para que el
siguiente programa devuelva true.-
alguien me dio esta:"[^a]*a[^a]*a[^a]*a[^a]*", pero considero que
debe haber algo mas elegante.-
……….
{
String frase = “analia”;
Pattern pat = Pattern.compile(”a{3}”);
Matcher enc = pat.matcher(frase);
System.out.println(”Devulve:” + enc.matches());
}
……….

Desde ya muchas gracias por vuestra ayuda
un gran abrazo
Daniel
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

RE:Me podrias decir como hago para que me de true.

Publicado por Tom (1831 intervenciones) el 21/11/2007 21:20:31
Tú no buscas "aaa" ¿no?

Intenta algo así como (a{1,3}){3}
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:Me podrias decir como hago para que me de true.

Publicado por Daniel (17 intervenciones) el 21/11/2007 22:52:08
Hola Tom

Esto es lo que hice y me da como resultado una "a"
pat=Pattern.compile("a{1,3}{3}");

El string "frase" contiene tres "a" minúsculas
lo que quiero es que el programa me devuelva 3 "a"
si "frase" tendría por ej. 4 "a" debería dar false y si
tuviera menos de 3 también, en definitiva lo que deseo
es saber si "frase" contiene exactamente 3 "a"

Muchas gracias por tú tiempo
un gran abrazo
Daniel
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:Me podrias decir como hago para que me de true.

Publicado por Tom (1831 intervenciones) el 23/11/2007 12:50:38
Mira mi ejemplo con más atención. Y revísate la doc.

(a{1,3}){3} no es lo mismo que tú has probado, los paréntesis cuentan.

Puedes refinar esta, que funciona para tres o más:

".*((a).*){3}"

Aunque en tu caso yo usaría String.split("a") y luego compararía el tamaño del array resultante. O bien haría un bucle con String.indexOf()
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:Me podrias decir como hago para que me de true.

Publicado por Daniel (17 intervenciones) el 23/11/2007 17:16:05
Hola a todos
un saludo Tom
Infinitas gracias, el segundo Ej. me sirve muchísimo, no obstante
el primero no logro que me de true te dejo el cod. para que si cuentas
con tiempo suficiente me marques el error.

------------------
package echoPorDaniel;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class temp
{
public static void main(String[] args)
{
String frase = "analia";
Pattern patron = Pattern.compile(".*((a).*){3}");
//Pattern patron = Pattern.compile("(a{1,3}){3}");
Matcher enc = patron.matcher(frase);
System.out.println("Devulve:" + enc.matches());
}
}
-----------------
Aclaración :Estoy casi obsesionado con Expresiones regulares y tal vez
me este perdiendo aprender antes un poco mas de sintaxis
en java y de allí el error (tengo 55 años y soy autodidacta).-

un gran abrazo
Daniel
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