Inserir elemento na primeira posição de um String[]

13 respostas
criador

Boa tarde.
Como faço para inserir uma String na primeira posição de um array de String(String[]) ???´
Esta minha lista já está preenchida com valores, porém quero inserir mais um, só que no começo (posição 0).
Alguma sugestão?

13 Respostas

criador

Detalhe: não quero perder nenhum valor que já tenho inserido dentro dele.
Só quero adicionar mais um na primeira posição (posição 0).

dmandrak

criador:
Boa tarde.
Como faço para inserir uma String na primeira posição de um array de String(String[]) ???´
Esta minha lista já está preenchida com valores, porém quero inserir mais um, só que no começo (posição 0).
Alguma sugestão?

Cara, eu nao entendi seu problema.

Vc quer inserir num elemento já preenchido, tipo jogar a posição 0 fora e alocar um novo valor?

Ou quer empurrar todo mundo (o 0 vira 1, o 1 vira 2, o 2 vira 3 e etc e o novo item vira 0)?

m0ska

É o que o amigo de cima falou, empurra todo mundo pra frente :smiley:

criador

Extamente…quero empurrar cada valor uma posição pra frente.
O 0 vira 1, o 1 vira 2, etc…e depois inserir um valor para a posição 1.
:wink:

criador

CORRIGINDO:

Extamente…quero empurrar cada valor uma posição pra frente.
O 0 vira 1, o 1 vira 2, etc…e depois inserir um valor para a posição 0 e não 1.

T

Use System.arrayCopy para mover os elementos do array uma posição para cima.

berg.pb

bem se vc tiver posições vazias no final, joia...
se não tiver, a ultima posição vai p beleleu, ok?
se vc nao puder mesmo fazer perder nada, é melçhor criar um outro array com tamanho n+1 do array original, e povoar ele com os dados.

//caso 01
//suponho q o nome do [] seja arrayString

for (int i=0;i<arrayString;i++){
  arrayString[i+1]=arrayString[i];
}
arrayString[0] = "novaString";

//caso02
String [] novoArray = new String[arrayString.length()+1];
novoArray[0] = "novaString";

for (int i=1;i<novoArray;i++){
  novoArray[i]=arrayString[i];
}
maquiavelbona

Beleza, então já sabe o que fazer. :slight_smile:
Você pode fazer da maneira direta ou da maneira inversa. Boa codificação.

[color=white] nada de código pronto menino[/color]

Até!

Raphael_Lacerda

se der pra substituir o array de string…

vc pode usar StringBuilder… ele possui o método insert, q vc fala a posição (0 based) e insere uma string…

abraços

brunocl14

uma lista já faz isso tudo sozinha. ¬¬

m0ska

Faz o seguinte…

String novoValor = "novo valor";

//ArrayList Original
ArrayList<String> a = Valores do array;

//ArrayList Novo
ArrayList<String> b = new ArrayList<String>();
b.add(novoValor);

//Agora vc adiciona o arraylist a ao b, tem um método pra isto, mas eu não me lembro hehehehe.

Essa de repente pode não ser a solução mais eficiente, mas acho que é uma bem simples.

criador

Galera, valeu a força ai.
Consegui fazer com um pouco de cada código. :wink:
Abraços a todos

B

A solução que o thingol apresentou é a mais eficiente de todas. O System.arraycopy é implementado nativamente dentro da JVM.

Ah, existe mais uma opção muito boa:

Arrays.copyOf e Arrays.copyOfRange. Funciona com tipos genéricos.

Criado 16 de dezembro de 2008
Ultima resposta 16 de dez. de 2008
Respostas 13
Participantes 9