Como usar o String.matches()
Dae pessoal!
Gostaria de saber como eu posso fazer para verificar se uma linha começa com // no começo.
Olhando lá na documentação eu vi que dá para fazer expressão regular com o matches, por isso eu acho que ele seria o mais indicado.
Como ficaria:
string1 = "//";
string2 = "// Isso é apenas um teste";
if (string1.matches("XX") && string2.matches("XX"))
System.out.println("Achou");
Só com as Barras // eu sei que não rola, pois eu fiz o teste...
Como seria? Alguem pode me ajudar?
[]'s João
Dragoncool
Curtidas 0
Respostas
Marcos Pereira
09/04/2009
João, procure na documentação da classe String por startsWith.
valeuz...
GOSTEI 0
Dragoncool
09/04/2009
Valeus!
Funcionou certinho para o que eu precisava...
:!: :!: :!: :!: :!: :!: :!: :!: :!: :!:
[]'s João
GOSTEI 0
Matheus Sproesser
09/04/2009
eu gostaria de saber como uso o matches para encontrar um ponto (.) no meio da palavra e com startswith não da pois o ponto pode estar em qualquer lugar ou pode estar em lugar nenhum
GOSTEI 0
Douglas Eric
09/04/2009
String arquivo = "nome_de_arquivo.tar.gz";
//para saber "se" tem um (ou mais) ponto(s) na String (true ou false)
System.out.println("contains: "+ arquivo.contains("."));
//para saber onde está o primeiro ponto*
System.out.println("indexOf: "+ arquivo.indexOf("."));
//para saber onde está o ultimo ponto*
System.out.println("lastIndexOf: "+ arquivo.lastIndexOf("."));
GOSTEI 0
Douglas Eric
09/04/2009
obrigado
funcionou como eu precisava
agora me diz
se pra encontra o ponto eu uso contains e pra encontra coisa no inicio da palavra, pra que eu uso o matches?? rsrs
GOSTEI 0
Douglas Eric
09/04/2009
[quote="matsproesser"]eu gostaria de saber como uso o matches para encontrar um ponto (.) no meio da palavra e com startswith não da pois o ponto pode estar em qualquer lugar ou pode estar em lugar nenhum
1 - [b]matches[/b] usa uma expressão regular (RE) como parâmetro mas "." é uma letra especial nas RE que representa qualquer letra, portanto tem que ser [i]escapada[/i]: "\\."
2 - [b]matches[/b] é meio ruim pois ele compara o texto inteiro, por isso que tem ter ".*" no início e fim da expressão, significando qualquer quantidade de qualquer letra
String texto;
if (texto.matches(".*\\..*")) {
...
}
String texto;
if (Pattern.compile("\\.").matcher(texto).find()) {
...
}
String texto;
Pattern pattern = Pattern.compile("\\.");
Matcher matcher = pattern.matcher(texto);
if (matcher.find()) {
...
}
String texto;
if (texto.contains(".")) {
...
}
String texto;
int index = texto.indexOf('.'); // ou .indexOf(".");
if (index != -1) {
// index é a posição do ponto
...
}
GOSTEI 0
Douglas Eric
09/04/2009
Huummm...
eu sei que matches serve para expressão regular...
Mas.... não tenho a mínina ideia de como usa xD
GOSTEI 0
Douglas Eric
09/04/2009
String string1 = "//";
String string2 = "// Isso é apenas um teste";
String regex = "^\/\/";
if (string1.matches(regex) && string2.matches(regex)) {
System.out.println("Achou");
}
GOSTEI 0