Problema com ArrayList

5 respostas
F

Pessoal estou com problemas ao tentar concatenar as Strings de um ArrayList, pois elas foram inseridas com quebra de linha(\n), criei uma variável local do tipo String e fiz um for para concatenar as Strings e adiciona-las a essa variável local, só que a impressão não imprime tudo na mesma linha.

Ex:(Como está imprimindo)

Coluna A
valor 1
valor 2
valor 3
valor 4
valor 5

Coluna B
valor 1
valor 2
valor 3
valor 4
valor 5

Coluna C
valor 1
valor 2
valor 3
valor 4
valor 5

Ex:(Como eu quero que imprima)

Coluna A Coluna B Coluna C
valor 1 valor 1 valor 1
valor 2 valor 2 valor 2
valor 3 valor 3 valor 3
valor 4 valor 4 valor 4
valor 5 valor 5 valor 5

Se alguém puder ajudar eu agradeço.

5 Respostas

F

A linguagem que eu estou usando é Java.

pmlm

Se mostrasses o código percebíamos o que estás a fazer e o que pretendes…

rnldfll
ArrayList<String> coluna1 = new ArrayList();
		ArrayList<String> coluna2 = new ArrayList();
		ArrayList<String> coluna3 = new ArrayList();
		
		coluna1.add("Coluna A");
		coluna1.add("valor 1");
		coluna1.add("valor 2");
		coluna1.add("valor 3");
		coluna1.add("valor 4");
		coluna1.add("valor 5");
		
		coluna2.add("Coluna B");
		coluna2.add("valor 1");
		coluna2.add("valor 2");
		coluna2.add("valor 3");
		coluna2.add("valor 4");
		coluna2.add("valor 5");
		
		coluna3.add("Coluna C");
		coluna3.add("valor 1");
		coluna3.add("valor 2");
		coluna3.add("valor 3");
		coluna3.add("valor 4");
		coluna3.add("valor 5");
		
		String texto = "";
		
		for(int i = 0; i<coluna1.size(); i++){
			texto += coluna1.get(i)+" \t"+coluna2.get(i)+" \t"+coluna3.get(i);
			texto+=("\n");
		}
		
		System.out.println(texto);

Aqui eu dividi o seu array em 3(um para cada coluna), dai usei o for para pegar os atributos de cada coluna na mesma linha
Não sei se era isso que você queria, ou se essa é uma solução valida para o seu problema, mais foi o que eu conseguir fazer, sou iniciante então espero alguma resposta mais inteligente q a minha :)

F

Acho que me expressei mal. Mostrar o código aqui seria um pouco complicado, pois estou usando várias classes e para compreender o código seria mais complicado. A ArrayList que tenho é a seguinte:

[ColunaA
valor1
valor2
valor3
valor4
valor5,
ColunaB
Valor1
Valor2
Valor3
Valor4
Valor5,
ColunaC
Valor1
Valor2
Valor3
Valor4
Valor5
]

Já a String que queria produzir seria no seguinte formato

ColunaA ColunaB ColunaC
Valor1 Valor1 Valor1
Valor2 Valor2 Valor2
Valor3 Valor3 Valor3
Valor4 Valor4 Valor4
Valor5 Valor5 Valor5

Espero ter me expressado melhor.

rnldfll

Ok, ainda não entendi mto bem, maas acho que tem que ser em um unico array, então consegui fazer isso, precisou rodar varios fors para isso dar certo e foi a unica maneira q consegui fazer, como disse antes se alguem conseguir uma solução mais facil eu tbm gostaria de saber, ai está:

public static void main(String[] args){
		ArrayList<String> array = new ArrayList();
				
		array.add("Coluna A");
		array.add("valor 1");
		array.add("valor 2");
		array.add("valor 3");
		array.add("valor 4");
		array.add("valor 5");		
		array.add("Coluna B");
		array.add("valor 1");
		array.add("valor 2");
		array.add("valor 3");
		array.add("valor 4");
		array.add("valor 5");		
		array.add("Coluna C");
		array.add("valor 1");
		array.add("valor 2");
		array.add("valor 3");
		array.add("valor 4");
		array.add("valor 5");
		
		String texto = "";
		
		int i = 0;
		int b = 0;
		while(i-6 != (array.size()-1)){
			for(i = b; i<array.size(); i+=6){
				texto += array.get(i)+" \t";
			}
			
			texto+="\n";
			
			b++;
		}
		
		System.out.println(texto);

Se não entender o que eu fiz só falar que eu explico.

@edit: Cara agora lendo o q vc escreveu eu acho q entendi o que vc quiz dizer, quando vc fez o array vc colocou o "\n" no final de cada elemento, acho q isso não é uma coisa certa a se fazer porque fica dificil manipular depois, então se vc fez isso acho melhor retirar as quebras de linha("\n"), boa sorte ae

Criado 15 de março de 2013
Ultima resposta 16 de mar. de 2013
Respostas 5
Participantes 3