Como procurar a posição de uma string em uma array multidimensional

9 respostas
P

Valendo uma paçoca!

partindo da seguinte array:

String [][] array= {{"Pedro","Maria"}, {"Maria", "Pedro", "Carlos"}, {"João", "Pedro"},};

Eu quero saber o método para pegar a posição de Pedro na array[1] , ou seja, na segunda linha.

Abraço

9 Respostas

E

Um for dentro do outro não serve?

P

Não entendi a pergunta…

E

Simplificando o problema.
Como você acha a posição de uma string em um array de apenas uma dimensão?
Usando um laço “for” já serviria, não?

P

Vamos ver oq sai… mas se quiser me ajudar no codigo :lol:

douglaskd

só o pedro é isso:

System.out.println(array[1][1]);

se quiser pegar todo é assim:

String [][] array= {{"Pedro","Maria"},{"Maria", "Pedro", "Carlos"},{"João", "Pedro"},};  
	
	for(int i=0;i<3;i++){
		for(int j=0;j<array[i].length;j++){
	System.out.println(array[i][j]);
		}
	}
P

Só lembrando que eu quero a POSIÇÃO do pedro da segunda linha....
Não precisa percorrer todas as linhas... Pq no meu programa eu sei qual linha eu devo procurar

Mais ou menos assim seria a lógica

se fosse uma array unidimensional:
String [] array= {"Pedro","Maria", "Carlos"};

int x = array.indexOf("Pedro");
o x seria 0 Para uma bidimensional eu tentei:
String [][] array= {{"Pedro","Maria"},  
                    {"Maria", "Pedro", "Carlos"},  
                    {"João", "Pedro"},};  
int x = array[1].indexOf("Pedro");

mas não funcionou

E

Tio, infelizmente todos os arrays não tèm um método “indexOf”. A única coisa que eles têm é um membro chamado “length”.

Para achar algo em um array, você pode usar um laço “for” mesmo (que é o que seu professor está esperando que você use no exercício, não?), ou então usar o seguinte truque (classe java.util.Arrays, http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html )

int x = Arrays.asList (array[1]).indexOf (“Pedro”);

P

vlw entanglement! Achei que tinha o indexOf pra array foi mal.

mas eu nao tenho professor… to por conta… nem curso faço… ano que vem se der certo começo…

Não to conseguindo pelo for vou tentar achar um outro jeito pro meu código Vlw

E

Ah, certo. Não sabia que você estava tentando aprender por conta própria.

De forma geral, a busca linear é sempre assim:

/**
 * @return A posição (de 0 a array.length - 1), ou -1 se não achar
 */
public int achar (String[] array, String objetivo) {
    for (int i = 0; i < array.length; ++i) {
        if (array[i].equals (objetivo)) {
            return i;
        }
    }
    return -1;
}
Criado 24 de novembro de 2010
Ultima resposta 24 de nov. de 2010
Respostas 9
Participantes 3