GARANTIR DESCONTO

Fórum Array de char para String #568542

09/04/2009

0

E ai galera, voltei com uma dúvida que tá me quebrando a cabeça. Eu to querendo transformar um array de caracteres em uma string, até aí tudo bem:
char KeyText[] = {'a','b','c'};
str = new String(KeyText);
isso funciona, mas eu quero inserir mais caracteres nesse array e transformar ele em String, ou queria que ele fosse vazio e eu inserir conforme o comando dado. Alguém pode me ajudar, to tentando fazer assim, mais dá erro durante a execução:
KeyText[0] = 'b';
Marciano Pazinato

Marciano Pazinato

Responder

Posts

09/04/2009

Dadario

Fazer Arrays dinânico é sempres complicado... Para se trabalhar assim, é preciso sempre criar um novo array com o novo tamanho e copiar do antigo para o novo. Eu recomendo fazer com collection Tipo, você cria a collection
List keyText = new ArrayList();
Depois sempre que quizer, insere um char, só que em forma de objeto
keyText.add(new Character('a'));
Depois para montar sua string:
char[] values = new char[keyText.size()];
int i = 0; 
for(Iterator iter = keyText.iterator(); iter.hasNext(); i++) {
  values[i] = ((Character)iter.next()).charValue();
}
String suaString = new String(values);
:wink: :wink: :wink: :wink:
Responder

Gostei + 0

09/04/2009

Marciano Pazinato

Desculpa ai galera, esqueci de falar que to utilizando isso em J2ME, daí tem coisas nesse código que não funciona tipo Iterator, ArrayList. Foi mal... :lol:
Responder

Gostei + 0

09/04/2009

[pt]devilishly

Boas! Simplesmente tens de criar um array com um tamanho previamente definido, tipo:
int LENGTH = 10;
char[] keyText = new char[LENGTH ];
Dp para introduzires os valores é só fazer:
keyText[0] = 'b';
Tens tb de ter cuidado, para verificar se o array de chars ja está cheio. Caso isso acontece deves reconstruir o array pelo menos com o dobro da capacidade. Por exemplo:
public void refazerArray(){
        LENGTH = LENGTH*2;
        char[] temp = new char[LENGTH];
        for(int i=0; i<keyText.length; i++)
            temp[i] = keyText[i];
        keyText = new char[temp.length];
        for(int i=0; i<keyText.length; i++)
            keyText[i] = temp[i];
    }
Fika bem, [PT]Devilishly
Responder

Gostei + 0

09/04/2009

Marciano Pazinato

Valeu galera, muito obrigado mesmo!!! :!: :!: :!: :!: :!:
Responder

Gostei + 0

09/04/2009

Dadario

[quote="Pazinato"]Desculpa ai galera, esqueci de falar que to utilizando isso em J2ME, daí tem coisas nesse código que não funciona tipo Iterator, ArrayList. Foi mal... :lol:
Então isto deveria está no tópico de J2ME... Movendo...
Responder

Gostei + 0

09/04/2009

Ricardo

Você pode usar Vector no J2ME que é um Collection
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar