Exercicio em Java

Olá pessoal, sou totalmente leigo em Java e resolvi me cadastrar nessa pagina para ver se alguem consegue me ajudar com o um exercício, no caso esse daqui:

Com base no que foi lido até o momento e com base no capítulo 3 do livro Core Java, escreva um programa que receba um array com o nome completo de 10 pessoas e apresente um array com apenas o primero nome de cada pessoa e neste array de apenas nomes os mesmos devem estar listados em ordem alfabética.

Exemplo: Joao da Silva, Felipe Santos, Adriano Kramer… (primeiro array) .
Resultado: Adriano, Felipe , Joao …(segundo array).

Assuma apenas o primeiro nome antes do espaço como primeiro nome!

Já consegui fazer a parte de escrever os dez nome( coloquei 3 no codigo pra agilizar nos testes, depois mudo pra 10) mas estou com muitas dificuldades para criar o codigo que mostre apenas o primeiro nome, o professor falou que poderia usar o comando spli(), mesmo assim não consigo fazer esse exericio. Segue o código que já terminei:

package exercicio2;

import java.util.Scanner;

public class ListaNomes {
	public static void main(String[] args ) {
		Scanner input = new Scanner(System.in);
		
		int numPessoas = 3;
		String nome[] = new String[numPessoas];
		
		for(int i = 0; i < numPessoas; ++i) {
			System.out.print("Digite o nome do " +(i+1) + "º aluno: ");
			nome[i] = input.nextLine();
		}
		
		input.close();
	}
}

O método que seu professor falou é o split. Esse método serve para dividir uma string com base num caractere, veja um exemplo:

String n = "TextoA TextoB";

String[] n2 = n.split(" "); // Quebra o texto com base no espaço em branco

System.out.println(n2[0]); // TextoA
System.out.println(n2[1]); // TextoB
1 curtida

Obrigado, já consegui resolver o exercício com ajuda que me deram lá no stackflow.

Caso ainda precise:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.JOptionPane;

public class Teste {
	
	public static void main(String[] args) {
		/**
		 * Lista para armazenar nomes.
		 */
		List<String> nomes = new ArrayList<>();
		
		/**
		 * Array inicializado como null. Vai armazenar somente o primeiro elemento retornado pelo método split.
		 */
		String[] primeiroNome = null;
		
		for(int i = 0; i < 10; i++) {
			/**
			 * Recebe 10 valores digitados pelo usuário.
			 */
			String nome = JOptionPane.showInputDialog("Digite o nome completo:");
			/**
			 * "Quebra" o valor recebido quando encontrar o espaço " " e armazena no array primeiroNome. 
			 */
			primeiroNome = nome.split(" ");
			/**
			 * Adiciona somente o valor da posição 0 (primeiro nome) na lista de nomes.
			 */
			nomes.add(primeiroNome[0]);
		}
		
		/**
		 * Ordenar a lista de nomes de forma lexicográfica.
		 */
		Collections.sort(nomes);
		
		/**
		 * Imprimir a lista ordenada.
		 */
		System.out.println(nomes);
	}

}
1 curtida

Opa, valeu amigo, outra maneira de fazer o exercício. É sempre bom aprender vários métodos.

1 curtida

Esse método é excelente, muito bom mesmo.

Obrigado.