Regex

1 resposta
Henrique.tenorio
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex {

 
    public static void main(String[] args) {
        Pattern p = Pattern.compile("\\d*");
        Matcher m = p.matcher("ab34ef");
        
        while( m.find()){
            System.out.print(m.start());
        }
    }
}
out -> 012456;

Porque a saída retorna o indice 6?

Desde já agradeço a colaboração.

1 Resposta

rso1988
Henrique.tenorio:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Regex {

 
    public static void main(String[] args) {
        Pattern p = Pattern.compile("\\d*");
        Matcher m = p.matcher("ab34ef");
        
        while( m.find()){
            System.out.print(m.start());
        }
    }
}
out -> 012456;

Porque a saída retorna o indice 6?

Desde já agradeço a colaboração.

Henrique, o que está acontecendo, é que ele retorna o "intervalo" de cada character "matched", Por exemplo: se a entrada fosse "a", ele retornaria "01", ou seja "a" está entre a posição 0 e 1. No seu caso, o caracter "f" está entre o índice 5 e 6, por isso o 6 é retornado.

Criado 6 de novembro de 2011
Ultima resposta 7 de nov. de 2011
Respostas 1
Participantes 2