Como converter posição do array string em float?
Entrada:
n : número de Frases
n frases no formato (“nome-matricula-data nascimento-nota”).
Saída:
Analisar cada uma das frases, armazenar o nome e a nota da frase que tenha a maior nota. Caso houver empate, imprima a primeira ocorrência.
Imprimir “O aluno ‘nome’ tirou nota igual a ‘nota’”
Exemplo:
Entrada:
n: 4
**“Jose-100-10/02/1998-70”**
**“Manoel-101-01/05/1996-75”**
**“Paula-102-10/08/2000-60”**
**“Pedro-103-09/02/1992-75”**
Saída:
**“O aluno Manoel tirou nota igual a 75”**
Meu código:
public static void main(String[] args) {
// TODO code application logic here
Scanner ler = new Scanner(System.in);
int n, cont, contNome;
float nota, notaMaior;
String[] vetor = new String[999];
String frase, nome = null;
cont = 3;
contNome = 0;
notaMaior = 0;
System.out.println("Informe o numero de frases");
n = ler.nextInt();
for (int i = 0; i < n; i++){
System.out.println("Informe a frase no formato: nome-matricula-data nascimento-nota: ");
vetor[i] = ler.next();
frase = vetor[i];
String v[] = frase.split("-");
nota = Float.parseFloat(v[cont]);
/*System.out.println(v[0]);
System.out.println(v[1]);
System.out.println(v[2]);
System.out.println(nota);*/
if (notaMaior < nota) {
nome = v[contNome];
notaMaior = nota;
}
cont = cont + 4;
contNome = contNome + 4;
}
//System.out.println("Nome: "+nome+" nota maior: "+notaMaior);
}
Boa Noite.
A conversão está correta mas a sua lógica está errada.
Não é necessário incrementar 4 no cont e no contNome pois toda vez que você volta pro for é criado um novo vetor então o nome,matricula,data e nascimento sempre estará na mesma posição do vetor.
Se você apagar esta parte deve funcionar
cont = cont + 4;
contNome = contNome + 4;
Valeu amigo. Depois eu vi mesmo que não fazia sentido o incremento. Funcionou belezinha…