Se vc cria um array com capacidade para 10 elementos, vc pode acessá-los do indice 0 até o 9. Se tentar acessar o indice 10, uma exceção será lançada (ArrayIndexOutOfBoundsException).
No seu caso, tenho quase certeza de que o problema está sendo causado por essa linha:
for(inti=0; i<=vet.length; i++) {
Substitua por:
for(inti=0; i < vet.length; i++) {
Vc não quer que o loop seja executado até que i seja igual que vet.length. Pois se o array tem length 10 e vc acessar o indice 10, estará extrapolando os limites.
Por isso o loop tem que ser executado apenas enquanto i for menor que o length, não mais que isso.
V
Vinicius_Leal
Imaginei que fosse exatamente isso, mas mesmo com a proposta sugerida por você, o erro persiste… até se eu nao deixar o método linearString executar, dá o erro mesmo para inserir a linha da posição 1 do Array, mesmo eu tendo declarado o mesmo com tamanho 10000.
staroski
Posta o código que você reescreveu.
wldomiciano1 like
Já entendi. O problema principal é o seu while.
Vc tá dizendo “enquando inserida for diferente de hello, faça”.
Aí vc pede a string pro usuário apenas uma vez fora desse loop, logo, inserida nunca vai ser igual a “hello” e parar.
Vc tem que pedir a string pro usuario dentro do loop. É importante também colocar um limite baseado no seu contador e no tamanho do array.
Fiz uma correção no seu main:
publicstaticvoidmain(String[]args){intcont=0,a=5;String[]vetString=newString[a];Stringinserida="";while(!inserida.equals("0")&&cont<a){inserida=JOptionPane.showInputDialog("Insira a "+cont+" String: "+"\n 0 encerra.");vetString[cont]=inserida;cont++;}linearString(vetString,inserida);}