Scanner 键盘输入 并赋值入新的数组 统计键盘输入数的次数

题目 
package test0805;

import java.util.Arrays;
import java.util.Scanner;

public class Test6 {

    public static void main(String[] args) {
        //第一步获取 键盘输入值
        //第二步  把键盘输入值放入一个数组里
        //声明一个变量  把 number的值取出来放入 新的数组
         //3.1用来接收拼接的字符串
        String numStr = "";
        // 1.使用Scanner类可以很方便的获取用户的键盘输入 system.in 代表标准输入 ,就是键盘输入;
         Scanner sc = new Scanner(System.in);
          while (sc.hasNext()){
             int number = sc.nextInt();
             if (number == 0) {
                 break;
             }
             numStr += ","+ number;
         }
          //3.2去掉字符串  ,4,5,6,2 -> 4,5,6,2
        numStr = numStr.replaceFirst(",","");
          //打印输出看一下
          //3.3System.out.println(numStr);现在获取的字符串以去除掉前面的,号;现在依然是String类型数据 需要转换成int的数据
           String[] numsStrArray = numStr.split(",");
           //打印输出看 4,5,6,2 -> ["4","5","6","2"]
           // System.out.println(Arrays.toString(numsStrArray));
          //3.获取键盘输入的长度 ;3.1先获取拼接的字符串 3.2去掉字符串,3.3转换成int型的数组类型

          //2.遍历一下设定的数组获取到了键盘输入的值 但是看到有很多的空索引值也打印出来
        // 所以我们把键盘输入的字符长度为arr的长度值 所以先获取键盘输入的长度
        //建立一个空的数组并制定数组的长度
        int[] arr =new int[numsStrArray.length];
        //遍历这个字符串数组 numsStrArray
        for (int i = 0; i <numsStrArray.length; i++) {
            //把字符串类型 转换成 arr[i] int类型数组
            arr[i] = Integer.parseInt(numsStrArray[i]);
            //输出int类型数组 查看
           // System.out.println(arr[i]); 现在已转换int型数组 arr
        }

        //下面做重复的加一 首先写两个数组 一个计数索引 一个放数组元素
        int[] numArray = new int[numsStrArray.length];//放置数字
        //计数索引
        int countIndex = 0;
        //计算数字出现的数字次数
        int[] timeArray = new int[numsStrArray.length];
        //遍历arr数组
        for (int num :arr){
            //去numArray查找是否含有num这个数
            //Arrays.binarySearch 这个方法的意思在数组numArray中是否存在num元素
            int numArrayIndex = Arrays.binarySearch(numArray, 0, countIndex, num);
             //如果返回值 <0
            if (numArrayIndex < 0 ) {
             //num 这个值放入number 数组
                numArray[countIndex] = num;
                timeArray[countIndex] = 1;
                countIndex++;
            }else{
                timeArray[numArrayIndex] += 1;
            }
        }
        System.out.println("统计结束,统计结果如下");
        for (int i = 0; i <countIndex ; i++) {
            System.out.println("数字"+numArray[i] +"出现了"+ timeArray[i]+"次");
        }

    }
}

结果如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值