Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
denismartos

Comparar valores de um array de objetos com uma string

Recommended Posts

Bom dia pessoal,
 
Estou a 3 dias me matando com um trabalho da faculdade.
 
A propsta é a seguinte tenho que fazer um sistema de login e senha porém sem banco de dados.
 
Então eu criei 2 classes, uma de Usuario que tem, usuario e senha e outra com nome de bancodados que armazena um array do Obejto Usuario, então toda vez que adiciono um usuario eu adiciono esse usuario na minha classe banco de dados dentro de um array.
Até ai tudo funcionando certinho, o problema é que antes de adiionar o usuário eu criei um metodo que percorre todos os objetos do array de usuarios pegando o nome do usuario e comparando com o usuario que digitaram, só que parece que ele não consegue fazer a comparação correta e ele nunca me retorna falando que o usuario já ta cadastrado.

 

Só que se eu chamar o outro metodo que criei na classe banco de dados que exibe todos os usuarios ele lista todos e se eu cadastrei 10 com o mesmo nome ele lista os 10.


Vou postar o código, já estou deseserado com isso.

 

MEU SERVLET

import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class registrarServlet */@WebServlet("/registrarServlet")public class registrarServlet extends HttpServlet {private static final long serialVersionUID = 1L;           /**     * @see HttpServlet#HttpServlet()     */    public registrarServlet() {        super();        // TODO Auto-generated constructor stub    } /*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { bancoDados bd; if(getServletContext().getAttribute("bancoDados") == null) {bd = new bancoDados();} else {bd = (bancoDados) getServletContext().getAttribute("bancoDados");} String usuario = request.getParameter("usuario");String senha = request.getParameter("senha");String mensagem = "";boolean usuarioExiste = false; //cadastra no bancoUsuario u = new Usuario(usuario,senha); usuarioExiste = bd.procuraUsuario(usuario); if(usuarioExiste == false) {bd.adicionaUsuario(u);getServletContext().setAttribute("bancoDados", bd);mensagem = "Usuário cadastrado com sucesso !";} else {mensagem = "Usuário ja cadastrado";}  request.setAttribute("msgs", mensagem);request.getRequestDispatcher("/jsp/cadastroResposta.jsp").forward(request, response);} }

 

MINHA CLASSE bancoDados

import java.util.ArrayList;  public class bancoDados { ArrayList<Usuario> Usuarios = new ArrayList<>();ArrayList<Object> Agenda = new ArrayList<>(); public void adicionaUsuario(Usuario Usuario) {Usuarios.add(Usuario);} public void adicionaAgenda(Object Registro) {Agenda.add(Registro);} public boolean procuraUsuario(String usuario) {for (int i = 0; i < Usuarios.size(); ++i) {  Usuario u = Usuarios.get(i);     if(u.getUsuario() == usuario) {    return true;   }    }return false; } public String exibeUsuarios(){String x = "";for (int i = 0; i < Usuarios.size(); ++i) {  Usuario u = Usuarios.get(i); x = x + "<br>" + u.getUsuario();}return x;} } 

 

MINHA CLASSE USUARIO

public class Usuario { String usuario;String senha; public String getUsuario() {return usuario;} public Usuario (String usuario, String senha) {this.usuario = usuario;this.senha = senha;} public boolean validaUsuario() {if(usuario.length() < 3 || usuario.length() > 10 || senha.length() < 3 || senha.length() > 10) {return false;}return true;} }

 

Quem puder por favor me ajude já não sei mais o que fazer, acho que ele da erro ao comparar u.getUsuario() == usuario, tem outra forma de efetuar a comparação?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, no java quando você utiliza o operador de igualdade "==" ele compara se a instancia dos objetos são a mesma. Quando você quer verificar se o conteúdo dos objetos são iguais você deve utilizar o método equals.

 

No seu caso ficaria assim:

if(u.getUsuario().equals(usuario)) {    return true;}

OBS: Para a classe String também tem o método equasIgnoreCase, que ignora as diferenças de letras maiúsculas e minusculas.

 

 

Abraços

Editado por Bruno D

Compartilhar este post


Link para o post
Compartilhar em outros sites
 

Olha meu querido, te agradeço imensamente por isso....

 

Uma resposta de apenas uma linha me ajudou muitoooooooooo.....

 

Brigadão cara =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×