Probleminha com array de String [RESOLVIDO]

9 respostas
Edifran
Galera..... é o seguinte. Tenho um array de String onde suas informações são alocadas uma por vez, atraves de uma função (pelo System.out.println() eu posso verificar a informação e a posição em que ela será gravada). Quando eu chamo a função pra imprimir o array, aparece tudo null. Eu to cometendo um erro, mas não to conseguindo encontrá-lo
package Classes;


public class GuardaArrayString {
    
    String[] array=new String[21];
    public GuardaArrayString() {
    }
    
    public void setArray(String str, int pos){
        array[pos]=str;
        System.out.println("String: "+str);
        System.out.println("Posição: "+pos);
    }
    public void show() {
        for(int c=0;c<array.length;c++){
            System.out.println(">"+array[c]);
        }
    }
}

Obrigado, e um forte abraço a todos.

9 Respostas

Marky.Vasconcelos

Voce tme certeza que está preenchendo o array antes de imprimir?

abelgomes

aparentemente ta tudo ok…posta ai o resto do codigo pra gente dar uma olhada…ou algum erro que tenha dado ou coisa parecida…olhando assim parece estar tudo bem…

Diego_Silveira

Cara, manda o método main que vc usa…

[]s

s4nchez

Se você só chamar show() sem alterar o array não vai funcionar mesmo. Já tentou isso?

public static void main(String[] args){
   GuardaArrayString a = new GuardaArrayString();
   for(int i=0; i< 21;i++){
       a.setArray("aqui está o string "+i, i);
   }
   a.show();
}
D

Está tudo funcionando corretamente. Testei aqui, e as únicas posições que aparecem nulas, são as que eu não passo nenhum valor.

Use esse main pra dar uma olhada:

public static void main(String[] args) { GuardaArrayString g = new GuardaArrayString(); for(int i =0; i < 21; i++) { g.setArray(String.valueOf(i),i); } g.show(); }

abelgomes

Daniels veja que nao foi Edifran que respondeu com metodo main()…

estamos esperendo que ele poste o codigo aqui…

abelgomes

Sim com esse main funciona…

Edifran

Bom dia pessoal.

PS: Como eu to na empresa, as vezes não posso ficar conectado direto…

mas… taí, no meu main existe um for que envia um array pra uma certa função de uma classe.

for("até acabar o array de arrays"){
sendArray.SetMessage(teste[cont],position);
position++;
}
//apos o for chamo a função pra imprimir o array
variavel.show();

e manda um array de inteiros pra esta classe.

public void SetMessage(int[] array, int pos) throws InterruptedException{
int arrayInteirosSendSerial[]=new int["novo tamanho que eu preciso"];
.
.//codigo.....
.
send.SendMessageToSerial(arrayInteirosSendSerial,pos);

manda um novo array de inteiros (com a informação necessaria) pra esta classe.

public static void SendMessageToSerial(int[] message, int pos) throws InterruptedException{
.
.// código.....
.// envio o array para a pora serial....
.// leio a porta serial.....
.// guardo a leitura da serial atraves desta função....
guarda.setArray(messageReceived,pos);

que está nesta classe…

package Classes;

public class GuardaArrayString {   
       
    String[] array=new String[21];   
    public GuardaArrayString() {   
    }   
       
    public void setArray(String str, int pos){   
        array[pos]=str;   
        System.out.println("String: "+str);   
        System.out.println("Posição: "+pos);   
    }   
    public void show() {   
        for(int c=0;c<array.length;c++){   
            System.out.println(">"+array[c]);   
        }   
    }   
}

Eu to dando uma verificada no código, deve ser um detalhe causador de tudo isso. Mas como virão no meu primeiro post, quando eu faço um System.out.print, eu vejo a String e a posição em que ela está sendo alocada corretamente.

Vou ainda seguir as dicas dadas por vcs.

Um abraço.

Edifran

Obrigado a todos.

Criado 6 de outubro de 2008
Ultima resposta 7 de out. de 2008
Respostas 9
Participantes 6