Entonces estoy usando el escáner para un ejemplo de archivo que tiene 4 niños y 3 niñas. Después de cada nombre hay un número entero (Mike 24) como ese y comienza con un niño, luego una niña, luego un niño y luego una niña, etc. En total hay 4 niños y 3 niñas y se supone que debo contar el número de niños y niñas y luego sume los números de cada niño para la suma y luego lo mismo para las niñas. Además, cuando asigné a los niños la consola.nextInt (), ¿eso toma el número del archivo y luego lo asigna a la variable de los niños? Además, ¿console.hasNext () tiene un índice como si dijera el token # 1, entonces puedo decir console.hasNext () == 1;? Muchas gracias.

Datos de muestra:

Erik 3 Rita 7 Tanner 14 Jillyn 13 Curtis 4 Stefanie 12 Ben 6

Código:

import java.util.*;
import java.io.*;
public class Lecture07 {

  public static void main(String[] args)  throws FileNotFoundException{
    System.out.println();
    System.out.println("Hello, world!");
   
    // EXERCISES:

    // Put your answer for #1 here:
    // You will need to add the method in above main(), but then call it here
    Scanner console = new Scanner(new File("mydata.txt"));
    boyGirl(console);
  }


  public static void boyGirl(Scanner console) { 
    int boysCount = 0;
    int girlsCount = 0;

    while (console.hasNext()) {
          if (console.hasNextInt()) {
              int boys = console.nextInt();
              int girls = console.nextInt();
                  
          }
          else {
            console.next();
          }
    }

  } 
}
0
Micah Cave 27 nov. 2021 a las 04:13

1 respuesta

La mejor respuesta

El hasNext() solo devolverá true o false. primero no debe hacer int boys = console.nextInt(); dentro de un ciclo, ya que creará una nueva variable cada vez y los datos se perderán. lo que debe hacer es asignar int boys = 0; solo debajo de sus otras 2 variables int boysCount y int girlsCount, lo mismo ocurre con int girls = 0

A continuación, necesitará algo como esto:

    public static void boyGirl(Scanner console) {
    int boysCount = 0; // here we asigning the variables that we gonna be using
    int girlsCount = 0;
    int boys = 0;
    int girls = 0;

    while (console.hasNext()) { // check if there is next element, it must be the name
        console.next(); // consume the name, we do not want it. or maybe you do up to you
        boys += console.nextInt(); // now get to the number and add it to boys
        boysCount++; // increment the count by 1 to use later, since we found a boy

        if (console.hasNext()) { // if statement to see if the boy above, is followed by a girl
            console.next(); // do same thing we did to the boy and consume the name
            girls += console.nextInt(); // add the number
            girlsCount++; // increment girl
        }
    }

Ahora, después de su ciclo while, hace lo que quiera con las variables, como imprimirlas o algo así. Espero poder ser de ayuda.

0
Emad Ali 27 nov. 2021 a las 04:32
¡Muchos gracias! He estado trabajando en esto durante unos días y luchando con Java.
 – 
Micah Cave
27 nov. 2021 a las 07:17