If não funciona >:/

5 respostas
X

Olha to quebrando a cabeça aqui e não to entendendo o pq disso. :evil:

Talvez por eu estar aprendendo sozinho, tá faltando algum conceito, se puderem me ajudar.

public String getExibir_topico() throws SQLException {
		
		con.conecta();
		stmt = con.con.createStatement();
		/*falta colocar o numero de respostas*/
		
		/*Constroi cabeçalho do topico*/
		sql = "SELECT * FROM top_topico, usu_usuario" ;
		sql += " WHERE usu_cdusuario = top_cdcriador";
		sql += " AND top_cdtopico = " + codigo_topico;
		rs = stmt.executeQuery(sql);
		int i = 0;
		cor = "#f1f1f1";
		while (rs.next()) {
			topico += "<tr>";
			topico += "<td align='center' bgcolor='" + cor + "'>" + font+ rs.getString("top_dttopico") + "</td>";
			topico += "<td align='center' bgcolor='" + cor + "'>" + font+ rs.getString("top_nmtopico") + "</td>";
			topico += "</tr>";
		}
		
		sql = "SELECT * FROM top_topico, usu_usuario, rep_resposta " ;
		sql += "WHERE top_cdtopico = " + codigo_topico + " AND top_cdtopico = rep_cdtopico ";
		sql += " AND rep_cdusuario = usu_cdusuario ORDER BY rep_dtresposta ASC";
		rs = stmt.executeQuery(sql);
		cor =  "white";
		
		List data = new ArrayList();
		List descricao = new ArrayList();
		List usuario = new ArrayList();

		
		/*Constroi restante do topico*/
		while (rs.next()) {
			data.add(rs.getString("rep_dtresposta"));
			descricao.add(font+ rs.getString("rep_dsresposta"));
			usuario.add(rs.getString("usu_nmusuario"));
			//topico += "<tr>";
			//topico += "<td align='center' valign='top' width='120'  bgcolor='" + cor + "'>" + font + rs.getString("usu_nmusuario") + "<BR>"  + rs.getString("rep_dtresposta") +  "</td>";
			//topico += "<td align='left' valign='top' width='570' bgcolor='" + cor + "'>" + font+ rs.getString("rep_dsresposta") + "</font></td>";
			//topico += "</tr>";	
		}	
		
		for( int j = 0 ; j !=  data.size(); j++) {
			topico += "<tr>";


			temp_nome = (String) usuario.get(j);
			
			if  (nome_usuario==temp_nome) {
				complemento="";
			}else{
				complemento = "<a href=#>Editar</a>";
					}
			
			topico += "<td align='center' valign='top'  bgcolor='" + cor + "'>" + font + temp_nome + "<BR>" + nome_usuario + "<BR>" + data.get(j)  + complemento +  "<BR></td>";
			topico += "<td align='left' valign='top' width='570' bgcolor='" + cor + "'>" + font+ descricao.get(j) + "</font></td>";
			topico += "</tr>";
		}

		topico += "</table>" + nome_usuario + " :P";		
		
		return topico;
		}

Está tudo funcionando bonitinho, até chegar no unico if que a classe possui.

Quero comparar um valor que eu trago do banco, com uma String que eu tenho definida.

Os problemas são:
-a classe roda, não sem gerar problemas.
-já mandei exibir as variaveis envolvidas no if, mas elas estão bem definidas e aparecem na tela bonitinhas.
-o if simplesmente não funciona, sempre retorna que todos são iguais, mesmo não sendo.

Agradeço desde já qualquer ajuda.

5 Respostas

Pedrosa

Use equals e não == para comparar string

if  (nome_usuario==temp_nome) {
if (nome_usuario.equals(temp_nome)) {
Roger75

Você tem que usar equals, e não “==”.

X

Pedrosa:
Use equals e não == para comparar string

if  (nome_usuario==temp_nome) {
if (nome_usuario.equals(temp_nome)) {

rapaz… fiquei emocionado com sua resposta. Vou te dar uma estrelinha, pq tu arrumou o problema e me ensinou algo novo :smiley:

dudaskank

hahahah, essa da estrellinha foi boa… como que faz isso aliás? tentei ontem mas não tive mutio sucesso :stuck_out_tongue:

bem, voltando ao tópico, como disseram vc pode usar o equals() ou então, se o caso não importar, tem o equalsIgnoreCase(), mesma coisa pra usar…

flw e bom aprendizado :slight_smile:

T

String é uma classe, não um tipo primitivo.
Contúdo toda String é um objeto, quando vc tenta comparar por
obj1 == obj2, ele verifica se ambos apontam para o mesmo ponteiro,
e não compara os valores de ambas, a forma correta como ja citaram
é com .equals()

:slight_smile:

Criado 26 de maio de 2006
Ultima resposta 26 de mai. de 2006
Respostas 5
Participantes 5