Dúvida quanto ao indice

2 respostas
D

Por que quando eu uso dessa forma ele acha pra mim o indice até depois da ultima caracter no caso "b". O ultimo retorno é "Start: 10 Group: (em branco)"

Pattern p = Pattern.compile("\d*");    
        Matcher m = p.matcher("1 a12 234b");
             
        while(m.find()) {     
            System.out.print("Start: " +m.start() +" Group: " +m.group() + "\n");     
        }

Agora quando uso dessa forma nao acha o indice depois da ultima letra, me gera exeção:

String nome = "Marcelo";
		char t = nome.charAt(7); // aqui seria o espaço em branco tambem nao? Igual no exemplo a cima?
		System.out.println(t);

2 Respostas

douglaskd

É porque você ta tentando pegar um valor fora do limite da string.

pode ver que se vc fizer nome.lenght, ele vai retornar 6, logo 7 é invalido.

tenta colocar esse espaço depois de Marcelo.

String nome = "Marcelo ";  
char t = nome.charAt(7); // aqui seria o espaço em branco tambem nao? Igual no exemplo a cima?  
System.out.println(t);

Não Testado!

D

douglaskd:
É porque você ta tentando pegar um valor fora do limite da string.

pode ver que se vc fizer nome.lenght, ele vai retornar 6, logo 7 é invalido.

tenta colocar esse espaço depois de Marcelo.

String nome = "Marcelo ";  
char t = nome.charAt(7); // aqui seria o espaço em branco tambem nao? Igual no exemplo a cima?  
System.out.println(t);

Não Testado!

Isso eu sei cara, mas quanto ao Pattern e Matcher acima, ele buscou um valor vazio após o b porque entao?

Criado 14 de setembro de 2010
Ultima resposta 14 de set. de 2010
Respostas 2
Participantes 2