Algebra 7 de dez. de 2010
com ajuda do código do vini, encontrei solução
final String regex = "(v[5-72])" ;
final Pattern pattern = Pattern . compile ( regex );
final String targetString = oldCode ;
final Matcher matcher = pattern . matcher ( targetString );
if ( matcher . find ()) {
//faça algo
}
eberson_oliveira 7 de dez. de 2010
Olá,
Tenta assim:
if ( codeList .get ( i ) .matches ( "v[0-9]{1,2}" ))
Assim você vai pegar a string começando com v e tendo combinações númericas contendo, no mínimo, um algarismo e, no máximo, dois.
Espero que ajude.
[]
Éberson
entanglement 7 de dez. de 2010
Isto é legal mas é lento:
if ( codeList .get ( i ) .matches ( "v[5-7]" ))
Isto é ligeiramente mais rápido:
Pattern pat = Pattern .compile ( "v[5-7]" ) ;
...
if ( pat .matcher ( codeList .get ( i )) .matches ())
...
Isto é um pouco ligeiramente mais rápido:
Pattern pat = Pattern .compile ( "v[5-7]" ) ;
Matcher mat = pat .matcher ( "" ) ;
...
if ( mat .reset ( codeList .get ( i )) .matches ())
...
E isto (no seu caso em particular) é mais rápido:
String code = codeList .get ( i ) ;
if ( code .equals ( "v5" )) ||
( code .equals ( "v6" )) ||
( code .equals ( "v7" )))
Algebra 7 de dez. de 2010
valeu pelas dicas rapazes, muito boas
entanglement 7 de dez. de 2010
Ah, não tinha visto que você queria do valor 5 ao valor 72. (Li o valor 7). Por exemplo, o código que você postou (“v[5-72]”) não funciona para o valor “v8”.
O correto é:
Pattern pat = Pattern .compile "v([0-9]+)" ;
String targetString = codeList .get ( i ) ;
Matcher mat = pat .matcher ( targetString ) ;
if ( mat .matches ()) {
int num = Integer .parseInt ( mat .group ( 1 )) ;
if ( 5 <= num && num <= 72 ) return true ;
}
return false ;
andredecotia 7 de dez. de 2010
Muito legal mesmo. Indo direto para o caderno de anotações…
abraço,
AS
Algebra 7 de dez. de 2010
é vdd entanglement percebi aqui obrigado