Problema com vetor de Strings

3 respostas
J

Galera, é o seguinte: Conforme postarei abaixo, criei um pequeno programa pra guardar nomes de pessoas em um vetor(o usuário vai digitar cada nome do vetor), e depois criei uma variável comp para que o usuário digitasse um nome e, se existente no vetor, mostrasse sua posição. O problema é que mesmo que o nome que digito na variável comp exista no vetor, ele simplesmente não encontra. Por favor, me ajudem!

import javax.swing.*;
public class VetorNomes {

    public static void main(String args[]) {
    	int n = Integer.parseInt(JOptionPane.showInputDialog("Qual o tamanho do vetor?"));
    	String comp;
    	String vetor[] = new String[n];

    	System.out.println("Vetor:");
    	for(int i=0; i<vetor.length; i++){
    		vetor[i] = JOptionPane.showInputDialog("Digite o " + (i+1) + " nome.");
    	System.out.print(vetor[i] + " | ");
    	}

    	comp = JOptionPane.showInputDialog("Digite o nome que queira localizar...");
    	for(int i=0; i<vetor.length; i++){
    		if(vetor[i]==comp){
    			JOptionPane.showMessageDialog(null, "O nome se encontra na posição " + (i+1) + " do vetor!");
    		}
    		else{
    			JOptionPane.showMessageDialog(null, "Nome não encontrado!");
    			break;
    		}
    	}
    }
}

3 Respostas

pmlm

Para comparar String deves usar equals e não ==

tguerra

Oi, JorgeMN.

Com a mudança citada acima pelo pmlm ele já funciona, porém teu vetor anda acessando o que não deve, pois antes de achar o nome no índice, ele também se perde.

for(int i=0; i<vetor.length-1; i++){ if(vetor[i].equals(comp)){

J

PROBLEMA CORRIGIDO!

Agradeço a todos por me ajudarem, já consegui arrumar o problema. O código ficou da seguinte maneira:

import javax.swing.*;
public class VetorNomes {

    public static void main(String args[]) {
    	int n = Integer.parseInt(JOptionPane.showInputDialog("Qual o tamanho do vetor?"));
    	String comp;
    	String vetor[] = new String[n];

    	System.out.println("Vetor:");
    	for(int i=0; i<vetor.length; i++){
    		vetor[i] = JOptionPane.showInputDialog("Digite o " + (i+1) + " nome.");
    	System.out.print(vetor[i] + " | ");
    	}

    	comp = JOptionPane.showInputDialog("Digite o nome que queira localizar...");
    	for(int i=0; i<vetor.length; i++){
    		if(vetor[i].equals(comp)){
    			JOptionPane.showMessageDialog(null, "O nome se encontra na posição " + (i+1) + " do vetor!");
    			break;
    		}
    		if(vetor[i]==vetor[n-1] && !vetor[i].equals(comp)){
    			JOptionPane.showMessageDialog(null, "Nome não encontrado!");
    			break;
    		}
    	}
    }
}
Criado 3 de novembro de 2011
Ultima resposta 3 de nov. de 2011
Respostas 3
Participantes 3