Ajuda em localizar a posição de variável em um vetor de String

Preciso localizar a posição de um nome dentro de um vetor String.

Por exemplo

[a][b][c][d]
…/
segunda posição.

O que eu fiz não retorna nenhum erro, porém não é executado quando eu determino qual variável eu quero saber a posição

Aqui vai o código que eu fiz:

import javax.swing.JOptionPane;


public class Exercicio2 {

	public static void main(String[] args) {
		
		int qte;
		String x, nome;
		boolean achou;
		
		try{
			nome=JOptionPane.showInputDialog(null, "Quantos nomes?"); 
			qte=Integer.parseInt(nome); 
			String nomes[] = new String [qte]; 
			for (int i=0;i<qte;i++){
				nome=JOptionPane.showInputDialog("Digite o " +(i+1)+"° nome");
				nomes[i]=nome;
			}
		
			nome=JOptionPane.showInputDialog(null, "Qual nome deseja pesquisar?"); 
			x=nome;
			achou=BuscaLinear(x, nomes); 
			
			if(achou){
				int n= nomes.length;       //aqui é a parte que dá erro na hora de executar
				for(int i=0;i<n;i++){       //aqui é a parte que dá erro na hora de executar
					if(nomes[i]==x)	{   //aqui é a parte que dá erro na hora de executar
				JOptionPane.showMessageDialog(null, "O nome "+x+" está presente no "+(i+1)+"° vetor"); 
						}
					}
				}
			else
				JOptionPane.showMessageDialog(null, "O nome "+x+" não está presente na relação");
		}								
		catch(Exception e)
		{
			JOptionPane.showMessageDialog(null, "Ocorreu um erro durante a leitura"); 
		}
	}

	private static boolean BuscaLinear(String x, String nomes[]) {
		final int n = nomes.length;
		for(int i = 0; i < n; i++)
			if(x.equalsIgnoreCase(nomes[i]))
				return true;
		return false;
	}
}

já retirei a parte comentada, e o programa funciona certinho, porém, sem a função desejada, que é a de saber em que posição a variável se encontra no vetor.

Por favor me ajudem :confused:

if(achou){ int n= nomes.length; //aqui é a parte que dá erro na hora de executar for(int i=0;i<n;i++){ //aqui é a parte que dá erro na hora de executar if(x.equalsIgnoreCase(nomes[i])) { //aqui é a parte que dá erro na hora de executar JOptionPane.showMessageDialog(null, "O nome "+x+" está presente no "+(i+1)+"° vetor"); } } }

Basta trocar
if(nomes[i]==x) por if(nomes[i].equalsIgnoreCase(x))
Do mesmo jeito que você fez no método BuscaLinear

nossa .-. e eu quebrando a cabeça aqui hahaha

Obrigado pessoal (:

substitua pelo código que lhe passei acima, e outra, vc está declarando algumas variaveis desnecessárias.

Olá

Se entendi bem, mude seu método, para retornar a posição em int, em vez de boolean

private static int BuscaLinear(String x, String nomes[]) { final int n = nomes.length; for(int i = 0; i < n; i++){ if(x.equalsIgnoreCase(nomes[i])){ return i; } } return -1; }

Assim, quando você usar teu método, verifique com um If o retorno do método se for maior que -1, então foi encontrado e já com sua posição

Ate++