Tenho uma duvida quanto ao uso do método split da classe String

porque a resposta é 8 ???

não seria 7 ???

public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s = "x1234 y56 z7 a";
		      String [] sa = s.split("\d");
		      int count = 0;
		      for( String x : sa)
		        count++;
		      System.out.println("total: " + count);

	}


Bom, vc pode ver o tamanho do array através da propriedade length do mesmo.

Agora, nesse laço que vc incrementa a variavel cont vc poderia imprimir cada pedaço da string e ver o que aconteceu :wink:

“x1234 y56 z7 a”;

O array de strings resultante vai ser:

“x”
“”
“”
“”
" y"
“”
" z"
" a"

A contagem é 8.

minha duvida como chegou a esses 8 caracters pois despreza osdigitos mascomo chegou a esses 8 ???

Você está confundindo “desprezar” com “usar como separador”. Faça um teste: troque todos os dígitos por vírgulas, e vamos contar:

    String s = "x,,,, y,, z, a";  
    String [] sa = s.split(",");

Veja quantos campos deve haver então.