Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Duvida de uso na Matriz

Olá... estou fazendo uma matriz - apenas para testar - onde quero cadastrar em uma matriz, depois preciso fazer uma busca digitando um nome e caso ele seja encontrado, vou guardar em um objeto.

String [][]vet = new String [2][2];

    vet[0][0] = "José";
    vet[0][1] = "Maria";
    vet[1][0] = "João";
    vet[1][1] = "Zilda";
    
Usando um if tipo if (nomeDigitado==vet[i][j]), não funciona. Também usei o Arrays.binarySearch(vet, nomeDigitado) 
e não funcionou - parece que só funciona em vetor unidimensional. Que comando uso para fazer essa pesquisa em uma martiz?
2 respostas

Para buscar um nome em uma matriz bidimensional, você precisará percorrer as linhas e colunas da matriz para encontrar uma correspondência. Aqui está um exemplo de como você pode fazer isso usando um loop for aninhado:

public class MatrizBusca {
    public static void main(String[] args) {
        String[][] vet = new String[2][2];

        vet[0][0] = "José";
        vet[0][1] = "Maria";
        vet[1][0] = "João";
        vet[1][1] = "Zilda";

        String nomeDigitado = "João";

        // Percorre a matriz em busca do nomeDigitado
        boolean encontrado = false;
        for (int i = 0; i < vet.length; i++) {
            for (int j = 0; j < vet[i].length; j++) {
                if (nomeDigitado.equals(vet[i][j])) {
                    // Se o nome for encontrado, armazene-o em um objeto ou faça o que for necessário
                    encontrado = true;
                    System.out.println("Nome encontrado na posição [" + i + "][" + j + "]");
                    break; // Se o nome já foi encontrado, não é necessário continuar procurando
                }
            }
        }

        if (!encontrado) {
            System.out.println("Nome não encontrado na matriz.");
        }
    }
}

No exemplo acima, a variável encontrado é usada para determinar se o nome foi encontrado na matriz. Se o nome for encontrado, a posição na matriz é impressa. Caso contrário, uma mensagem indicando que o nome não foi encontrado é exibida.

Note que você deve usar o método equals() para comparar strings em Java, não o operador ==, que compara referências de objetos, não seus valores.

solução!

Olá Carlos, obrigado pela ajuda. Assim que fiz essa pergunta, já tinha conseguido solucionar. Deixei a pergunta em aberto porque queria ver alguma solução diferente, mas a sua ficou muito parecida com o que fiz. Na verdade eu estava usando o equals de forma errada, quando arrumei, funcionou.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software