Javafree
Página Inicial do Fórum > Java Básico

Verificação de String



Criar novo tópico   Responder tópico


  1. paczekv
    Posts:7


    Comment Arrow

    Publicado em: 20/04/2016 16:51:22

    Olá,
    Preciso de uma ajuda para verificar se existe uma determinada String no meu ArrayList. Não consegui nenhum resultado como eu estou fazendo talvez alguém possa me ajudar.

    DECLARAÇÃO DO ARRAYLIST:

    ArrayList<busca_protocolo> arr = new ArrayList<>();

    POPULANDO O ARRAYLIST:

    private void arrayProtocolo() {
    busca_protocolo obj = new busca_protocolo();
    try {
    Class.forName("org.postgresql.Driver";
    con = DriverManager.getConnection(url, usuario, senha);
    stm = con.createStatement();
    String alterar = "SELECT * FROM tb_protocolo";
    rs = stm.executeQuery(alterar);
    while (rs.next()) {
    obj.setCd_protocolo(rs.getString("ds_codigo");
    arr.add(obj);
    }

    } catch (ClassNotFoundException | SQLException ex) {
    Logger.getLogger(Assunto.class.getName()).log(Level.SEVERE, null, ex);
    }

    }


    MÉTODO DE VERIFICAÇÃO:

    public boolean verifica(String ds_codigo) {
    for (x = 0; x < arr.size(); x++) {
    if (this.arr.get(x).getDs_protocolo() == ds_codigo) {
    verifica = true;
    }
    }
    return verifica;
    }

    MÉTODO PARA DELETAR A STRING, UMA VEZ QUE ESSA STRING ESTEJA DENTRO DO ARRAYLIST:

    private void deletar() {
    String ds_codigo = jTextField1.getText();
    verifica(ds_codigo);
    if (verifica == true) {
    JOptionPane.showMessageDialog(null, "Prefixo correto!";

    } else {
    JOptionPane.showMessageDialog(null, "Prefixo incorreto!";
    }
    }


    Como resultado eu sempre recebo como "Prefixo incorreto!", ele não ta passando pela verificação corretamente.
    É problema lógico mas não consegui pensar em uma maneira de resolver



  1. staroski
    Posts:4599


    Comment Arrow

    Publicado em: 20/04/2016 20:49:23

    Com objetos, o == compara a referência na memória, Pra comparar o conteúdo de Strings, tens que usar o método equals

    _________________

    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC
    Faço seu trabalho Java,
    clique aqui

    Acesse http://www.guj.com.br/



  1. paczekv
    Posts:7


    Comment Arrow

    Publicado em: 22/04/2016 14:32:02

    [quote="staroski"]Com objetos, o == compara a referência na memória, Pra comparar o conteúdo de Strings, tens que usar o método equals




    Fiz essa modificação:

    public boolean verifica(String ds_codigo) {
    for (x = 0; x < arr.size(); x++) {
    if (this.arr.get(x).getDs_protocolo().equals(ds_codigo)) {
    verifica = true;
    }
    }
    return verifica;
    }

    Agora ele ta passando pela verificação mas tem um problema. Ele só ta aceitando o ultimo elemento do ArrayList



  1. vitiazze
    Posts:101


    Comment Arrow

    Publicado em: 30/04/2016 19:24:19

    [quote="paczekv"]Olá,
    Preciso de uma ajuda para verificar se existe uma determinada String no meu ArrayList. Não consegui nenhum resultado como eu estou fazendo talvez alguém possa me ajudar.

    DECLARAÇÃO DO ARRAYLIST:

    ArrayList<busca_protocolo> arr = new ArrayList<>();

    POPULANDO O ARRAYLIST:

    private void arrayProtocolo() {
    busca_protocolo obj = new busca_protocolo();
    try {
    Class.forName("org.postgresql.Driver";
    con = DriverManager.getConnection(url, usuario, senha);
    stm = con.createStatement();
    String alterar = "SELECT * FROM tb_protocolo";
    rs = stm.executeQuery(alterar);
    while (rs.next()) {
    obj.setCd_protocolo(rs.getString("ds_codigo");
    arr.add(obj);
    }

    } catch (ClassNotFoundException | SQLException ex) {
    Logger.getLogger(Assunto.class.getName()).log(Level.SEVERE, null, ex);
    }

    }


    MÉTODO DE VERIFICAÇÃO:

    public boolean verifica(String ds_codigo) {
    for (x = 0; x < arr.size(); x++) {
    if (this.arr.get(x).getDs_protocolo() == ds_codigo) {
    verifica = true;
    }
    }
    return verifica;
    }

    MÉTODO PARA DELETAR A STRING, UMA VEZ QUE ESSA STRING ESTEJA DENTRO DO ARRAYLIST:

    private void deletar() {
    String ds_codigo = jTextField1.getText();
    verifica(ds_codigo);
    if (verifica == true) {
    JOptionPane.showMessageDialog(null, "Prefixo correto!";

    } else {
    JOptionPane.showMessageDialog(null, "Prefixo incorreto!";
    }
    }


    Como resultado eu sempre recebo como "Prefixo incorreto!", ele não ta passando pela verificação corretamente.
    É problema lógico mas não consegui pensar em uma maneira de resolver




    amigo, pode usar o método contains. e verificar se existe uma string dentro da sua lista.

    tome como base um exemplo do meu código:


    _________________

    nullpointerexception null



  1. Relacionados