[Dúvda] Mesclar Strings!

3 respostas
Nicolas_Fernandes

Olá, galerinha do GUJ!
Beleza?

Tô com uma dúvida meio besta, mas espero que consigam me ajudar! ^^"
Bom… Eu quero meio que “concatenar” várias strings, mas de um método não tão porco…
Com .NET, eu faço da seguinte maneira:

string MinhaString = string.Format("Insert Into Tabela Values ('{0}', '{1}', '{2}')", MeuObjeto.Campo1, MeuObjeto.Campo2, MeuObjeto.Campo3);

Assim fica simples e bem legível o código!
Há algo parecido em Java?

Eu tentei o StringBuilder:

StringBuilder minhaString = new StringBuilder("Update Tabela Set ");
minhaString.append("Campo1 = '" + meuObjeto.getCampo1() + "',");
minhaString.append("Campo2 = '" + meuObjeto.getCampo2() + "',");
minhaString.append("Campo3 = '" + meuObjeto.getCampo3() + "'");
minhaString.append("Where Id = " + meuObjeto.getId());

Ou até o próprio método concat da classe String:

String minhaString = "Update Tabela Set ";
minhaString.concat("Campo1 = '" + meuObjeto.getCampo1() + "',");
minhaString.concat("Campo2 = '" + meuObjeto.getCampo2() + "',");
minhaString.concat("Campo3 = '" + meuObjeto.getCampo3() + "'");
minhaString.concat("Where Id = " + meuObjeto.getId());

Mas sei lá… Esse tanto de aspas pra cá, pra lá… Vírgula perdida ali, aqui… Não parece muito interessante, sabe?
Eis, então, minha dúvida:

  1. Quando se usa um objeto PreparedStatement, a query possui, dentro dela, “?” que representam parâmetros. O método string.Format(), do .NET, segue a mesma linha de raciocínio, só que usa “{0}, {1}” como representação de parâmetros, como proposto acima. Há alguma forma de fazer com a classe String ou similar algo parecido ao do PreparedStatement ou do Format()??

Valeu, galera, grande abraço!

3 Respostas

davidbuzatto

Quase a mesma coisa:

http://download.oracle.com/javase/6/docs/api/java/lang/String.html#format(java.lang.String,%20java.lang.Object...)

[]´s

davidbuzatto

Exemplo:

System.out.println( String.format( "esta é uma String formatada inteiro: %d, ponto flutuante: %.3f, String: %s", 1, 2.2548, "uma String" ));

%d => para inteiros
%f => para ponto flutuante
%s => para String
%.3f => ponto flutuante, com três casas decimais. Note que o número é arrendondado.

Mais detalhes do formato:
http://download.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax

[]´s

florio

Opa rapaiz…
Procura usar um append a cada vez que vc for concatenar…
Assim ó:

StringBuilder concat = new StringBuilder("");
concat.append("select * from ");
concat.append(tabela);
concat.append(" where ");
concat.append(coluna);
concat.append(" = ");
concat.append(parametro);

E hora que for usar a string, use o método

concat.toString();

[]'s

Criado 26 de agosto de 2010
Ultima resposta 26 de ago. de 2010
Respostas 3
Participantes 3