Strings problemas

Tenho um código que é assim

 if((codeList.get(i).equals("v5"))||
    (codeList.get(i).equals("v6"))||
    (codeList.get(i).equals("v7")))
     //faca algo;

não quero deixar este volume gigantesco de código

tentei isso mas não consegui

 if(codeList.get(i).equals("v[5-7]"))

e o pior é que tenho que por de v5 à v72

kkk - alguem pode me auxiliar neste código

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  
        }  

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

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")))  

valeu pelas dicas rapazes, muito boas

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;

Muito legal mesmo. Indo direto para o caderno de anotações…

abraço,
AS :smiley:

é vdd entanglement percebi aqui obrigado