E ae pessoal blz? Estou tendo problema com expressoes regulares…ja debuguei o codigo linha a linha e ele nao entra no if mesmo a condicao sendo verdadeira…
if (Pattern.matches("P*", "Palavra")) {
completion.addElement("Palavra");
}
Fiz algo errado?
Utilize o ‘.’ depois do P!
if (Pattern.matches("P.*", "Palavra")) {
System.out.println("LOL");
}
[quote=moskaBR]E ae pessoal blz? Estou tendo problema com expressoes regulares…ja debuguei o codigo linha a linha e ele nao entra no if mesmo a condicao sendo verdadeira…
if (Pattern.matches("P*", "Palavra")) {
completion.addElement("Palavra");
}
Fiz algo errado?[/quote]
Da forma como está fazendo o método só vai retornar true se sua entrada for zero ou mais 'P’s, por exemplo, as seguintes expressões retornariam true: Pattern.matches("P*", "P"); // Um P
Pattern.matches("P*", "PPPP"); // Vários Ps
Pattern.matches("P*", ""); // Nenhum P
Se quiser que a expressão retorne true quando exista um P seguido de qualquer outro caractere deve fazer como sugerido pelo rafadelnero: Pattern.matches("P.*", "Palavra"); // Um P seguido de qualquer sequência de caracteres
Pq não usar o startsWith?
if ("Palavra".startsWith("P")) {
completion.addElement("Palavra");
}
Funcionou perfeitamente…esqueci deste detalhe, adicionando o ponto foi certinho…valew