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
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);
}
}