1 package com.snape.java._3th.Test19; 2 3 import javax.xml.transform.sax.SAXTransformerFactory; 4 import java.util.Random; 5 import java.util.concurrent.CountDownLatch; 6 7 //利用一维String数组进行男女生到场情况统计 8 public class Boy_Girl_Counter { 9 public static void main(String[] args) { 10 int sum_boy = 0; //男生到场人数 11 int sum_girl = 0; //女生到场人数 12 13 //----------------------------------------------------------------------关键代码 14 //构建男女生到场情况表格,并打印出来(每行10个) 15 String[] sexy = new String[50]; //假设共有50人 16 for(int i=0; i<sexy.length; i++){ 17 Random rd = new Random(); 18 int lsex = rd.nextInt(2); //随机获取0或1 19 int rate = rd.nextInt(2); //随机获取0或1 20 sexy[i] = lsex + "," + rate; 21 System.out.print(sexy[i] + " "); //打印每个学生的情况(性别,到场与否) 22 if((i+1)%10 == 0){ 23 System.out.println(); //换行 24 } 25 }//for结束 26 27 //遍历表格,统计情况 28 for(int i=0; i<sexy.length; i++){ 29 //获取每个学生的性别和到场与否情况 30 String[] status = sexy[i].split(","); //正则表达式 31 if(status[0].equals("0") && status[1].equals("1")){ //男生且到场 32 sum_boy++; 33 }else if(status[0].equals("1") && status[1].equals("1")){ //女生且到场 34 sum_girl++; 35 } 36 }//for结束 37 38 System.out.println("到场男生人数:" + sum_boy); 39 System.out.println("到场女生人数:" + sum_girl); 40 } 41 }
结构:
点评:利用一维数组即可解决本来得用二维数组才能解决的问题,核心是正则表达式split()的使用