Imprimir ArrayList() sem as []

8 respostas
M

Pessoal, como faço para imprimir os valores do ArrayList() mas sem as chaves.

String sql = "SELECT status,count(*) FROM ata where status!='' and date_part('month',data)='"+mes+"' and date_part('year',data)='"+ano+"' group by status";
	 rs = st.executeQuery(sql);
	 
	    List<String> lista = new ArrayList<String>();
	    List<String> lista1 = new ArrayList<String>();

		while (rs.next()){
			  lista.add(rs.getString(1));
			  lista1.add(rs.getString(2));
		      }

out.println(""+lista);
out.println(""+lista1);

quando mando imprimir aparece desta maneira:[Preliminar, Retornado, Final] [7, 4, 5], e preciso que imprima assim Preliminar, Retornado, Final e 7, 4, 5.

Marcos

8 Respostas

F

percorra a lista e teras o resultado que quer.

for(String s : lista){
   System.out.print(s);
}

ou vc pode usar um pouco de POG aplicada e fazer algo assim

System.out.println(lista.toString().replaceAll("[").replaceAll("]");

De preferencia não use a segunda opção.

M

Felagund,

Preciso imprimir separados por vírgula porque os valores irão compor um gráfico

Aqui terá que ir assim: Preliminar, Retornado, Final
graph.labels = “<%=lista%>”;

e aqui assim: 7, 4, 5
graph.values = “<%=lista1%>”;

F

Você pode usar um stringBuilder

StringBuilder sb = new StringBuilder();
for(String s : lista){
   sb.append(",").append(s);
}
String retorno = sb.toString().replaceFirst(",");

A string retorno tem todos os valores separatos por virgulas

[]'s

M

Cara, como sou iniciante não conheço todas as funções e opções disponíveis…

Vc poderia me ajudar a imprimir esses valores no gráfico, estou me batendo um monte… Prometo que como um bom catarinense também vou estudar o que vc fizer.

Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

ResultSet rs = null;

	 String sql = "SELECT status,count(*) FROM ata where status!='' and date_part('month',data)='"+mes+"' and date_part('year',data)='"+ano+"' group by status";
	 rs = st.executeQuery(sql);
	 
	    List<String> lista = new ArrayList<String>();
	    List<String> lista1 = new ArrayList<String>();

		while (rs.next()){
			  lista.add(rs.getString(1));
			  lista1.add(rs.getString(2));
		      }

<SCRIPT language=JavaScript><!--
graph = new BAR_GRAPH("vBar");
graph.labels = "<%=lista%>";
graph.values = "<%=lista1%>";
graph.legend = "<%=ano%>";
graph.showValues = 1;
document.write(graph.create());
//--></SCRIPT>

Desde já agradeço a ajuda

Marcos

F

cara é simples
usando a string de retorno la

&lt;SCRIPT language=JavaScript&gt;&lt;!--  
 graph = new BAR_GRAPH("vBar");  
 graph.labels = "&lt;%=retorno %&gt;";  
 graph.values = "&lt;%=retorno1%&gt;";  
 graph.legend = "&lt;%=ano%&gt;";  
 graph.showValues = 1;  
document.write(graph.create());  
 //--&gt;&lt;/SCRIPT&gt;

a string de retorno1 é a mesma coisa para a lista1.

M

Rafael, fiz assim está correto? Mas está dando um erro…

String sql = "SELECT status,count(*) FROM ata where status!='' and date_part('month',data)='"+mes+"' and date_part('year',data)='"+ano+"' group by status";
	 rs = st.executeQuery(sql);
	 
	    List<String> lista = new ArrayList<String>();
	    List<String> lista1 = new ArrayList<String>();

		while (rs.next()){
			  lista.add(rs.getString(1));
			  lista1.add(rs.getString(2));
		      }
		StringBuilder sb = new StringBuilder();   
		for(String s : lista){   
		   sb.append(",").append(s);   
		}
     	String retorno = sb.toString().replaceFirst(",");
     	
		StringBuilder sb1 = new StringBuilder();
		for(String s1 : lista1){   
			sb1.append(",").append(s1);   
		}   
		String retorno1 = sb1.toString().replaceFirst(",");

Olha só o erro que aparece:

An error occurred at line: 45 in the jsp file: /grafico_total_barras.jsp

The method replaceFirst(String, String) in the type String is not applicable for the arguments (String)

42: 		for(String s : lista){

43: 		   sb.append(",").append(s);

44: 		}

45:      	String retorno = sb.toString().replaceFirst(",");

46:      	

47: 		StringBuilder sb1 = new StringBuilder();

48: 		for(String s1 : lista1){
An error occurred at line: 51 in the jsp file: /grafico_total_barras.jsp

The method replaceFirst(String, String) in the type String is not applicable for the arguments (String)

48: 		for(String s1 : lista1){

49: 			   sb1.append(",").append(s1);

50: 		}

51: 		String retorno1 = sb1.toString().replaceFirst(",");
F

Cara so ler o erro

String retorno = sb.toString().replaceFirst(",", “”);

assim vai

M

Rafael, funcionou… Muito obrigado mesmo!

Criado 23 de junho de 2009
Ultima resposta 23 de jun. de 2009
Respostas 8
Participantes 2