GARANTIR DESCONTO

Fórum Como usar o String.matches() #568734

09/04/2009

0

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

Dragoncool

Responder

Posts

09/04/2009

Marcos Pereira

João, procure na documentação da classe String por startsWith. valeuz...
Responder

Gostei + 0

09/04/2009

Dragoncool

Valeus! Funcionou certinho para o que eu precisava... :!: :!: :!: :!: :!: :!: :!: :!: :!: :!: []'s João
Responder

Gostei + 0

13/09/2011

Matheus Sproesser

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
Responder

Gostei + 0

13/09/2011

Douglas Eric

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("."));
* retorna -1 caso não tenha o char especificado
Responder

Gostei + 0

13/09/2011

Douglas Eric

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
Responder

Gostei + 0

13/09/2011

Douglas Eric

[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(".*\\..*")) {
    ...
}
para procurar em qualquer local do texto, é pode-se usar o [b]find[/b] que infelizmente não tem na String:
String texto;

if (Pattern.compile("\\.").matcher(texto).find()) {
    ...
}
ou
String texto;

Pattern pattern = Pattern.compile("\\.");
Matcher matcher = pattern.matcher(texto);
if (matcher.find()) {
    ...
}
MAS para um caso simples, não tem necessidade de usar uma expressão regular, muito mais legível usar o [b]contains[/b] ou, se tiver que saber onde o ponto se encontra, o [b]indexOf[/b] (ou o [b]lastIndexOf[/b] para achar a última ocorrência)
String texto;

if (texto.contains(".")) {
    ...
}
ou
String texto;

int index = texto.indexOf('.');  // ou .indexOf(".");
if (index != -1) {
    // index é a posição do ponto
    ...
}
[[]]
Responder

Gostei + 0

13/09/2011

Douglas Eric

Huummm... eu sei que matches serve para expressão regular... Mas.... não tenho a mínina ideia de como usa xD
Responder

Gostei + 0

27/11/2013

Douglas Eric

String string1 = "//";
String string2 = "// Isso é apenas um teste";

String regex = "^\/\/";

if (string1.matches(regex) && string2.matches(regex)) {
    System.out.println("Achou"); 
}
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar