如何在java中从文件中分离项目

如何在java中从文件中分离项目,java,file,if-statement,java.util.scanner,next,Java,File,If Statement,Java.util.scanner,Next,下午好,我正在尝试读取一个文件的内容,并根据它们出现的次数将它们添加到各自的变量中。该程序设计用于计算两个子女家庭中男孩或女孩的概率。BB表示2个男孩,GG表示2个女孩,GB或BG表示男孩和女孩。该文件的信息如下: BB GB GB BG GG GB GB GB GB GG 以下是我编写的代码: import java.util.Scanner; import java.io.File; import java.io.IOException; public class Fam

下午好,我正在尝试读取一个文件的内容,并根据它们出现的次数将它们添加到各自的变量中。该程序设计用于计算两个子女家庭中男孩或女孩的概率。BB表示2个男孩,GG表示2个女孩,GB或BG表示男孩和女孩。该文件的信息如下:

BB

GB

GB

BG

GG

GB

GB

GB

GB

GG
以下是我编写的代码:

import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class Family
{
   public static void main (String args[]) throws IOException {
    //variables defined
    int numGB = 0;
    int numBG = 0;
    int numGG = 0;
    int numBB = 0;
    int totalNum = 0;
    double probBG;
    double probGG;
    double probBB;
    String token ="";
    int spaceDeleter = 0;
    int token2Sub = 0;
    
    File fileName = new File ("test1.txt"); 
    
    Scanner in = new Scanner(fileName); //scans file
    
    System.out.println("Composition statistics for families with two children");
    while(in.hasNextLine())
    {
        token = in.next( ); //recives token from scanner
        if(token.equals("GB"))
        {
        numGB = numGB + 1;
        }
        else if(token.equals("BG"))
        {
        numBG = numBG + 1;
        }
        else if(token.equals("GG"))
        {
        numGG = numGG + 1;
        }
        else if(token.equals("BB"))
        {
        numBB = numBB + 1;
        }
        else if(token.equals(""))
        {
        spaceDeleter =+ 1; //tried to delete space to no avial
        }
        else 
        {
        System.out.println("Data reading error");
        }
    }
    in.close(); //closes file
    
    totalNum = numBB + numGG + numBG + numGB; // calculates total num of tokens
    probBG = (numBG + numGB) / totalNum; //Probability of boy and girl
    probBB = numBB / totalNum; // Probability of Boy
    probGG = numGG / totalNum; //Probability of girl
    
    System.out.println("Total number of families: " + totalNum); //print results to user
    System.out.println("");
    System.out.println("Number of families with");
    System.out.println("\t 2 boys: " + numBB + " represents " + probBB + "%");
    System.out.println("\t 2 girls: " + numGG + " represents " + probGG + "%");
    System.out.println("\t 1 boy and 1 girl: " + (numBG + numGB) + " represents " + probBG + "%");
}
}


我不知道这是否回答了你的问题,但据我所知,你想把文本文件中的每一行分开。如果是这种情况,您可以编写一个包含两种情况的switch语句,a和B。u希望循环遍历一行中的每个字符:

for(int i = 0; i<2; i++){
   switch(token.charAt(i)){
       case 'G':
           <Some variable>
           break;
       case 'B':
           <Some variable>
           break;
    }
}

for(int i=0;i问题是什么?如何分离从扫描仪接收到的项目,以便它们可以计入if语句内的总数?使用isBlank字符串方法检查是否有空行。