随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。

思路:

字符的分割和类型的转换;

首先是接口的规范:

public interface IInputNumber {     // 从键盘获取数据
    public String[] inputNum();
}
public interface IGetOdevity {  // 获取奇偶数
    public int[] getOdevity(String[] inputStringArr);
}

然后是获取数据和处理方法:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class InputNumber implements IInputNumber{
    @Override
    public String[] inputNum() {
        BufferedReader inputString = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("请输入想要的数字:");
        try {
            String input = inputString.readLine();
            /*
            if (input.matches("\\d( \\d+ )+ *|(\\d+ )+\\d|( *\\d+)+|( *\\d+ )+ *")){
            1. 开头无空格,结尾有多个空格
            2. 开头结尾都无空格
            3. 开头有多个空格,结尾没有空格
            4. 开头结尾都有多个空格
            * */
            if (input.matches("\\d+( \\d+)+ *|(\\d+ )+")){
                return input.split(" ");
            } else if (input.matches("( +\\d+)+")){
                System.out.println("错误!开头不能输入空格");
            }else {
                System.out.println("错误!请输入数字!");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
                try {
                    inputString.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }
        return null;
    }
}
public class GetOdevity implements IGetOdevity {
    @Override
    public int[] getOdevity(String[] inputStringArr) {    // 获取奇偶数个数的方法
        int[] res = new int[2]; // 表示奇偶数个数
        res[0] = 0; // 表示奇数个数
        res[1] = 0; // 表示偶数个数
        if (inputStringArr.length != 0) {
            int[] getIntNum = new int[inputStringArr.length];
            for (int i = 0; i < inputStringArr.length; i++) {   // 将传入的字符串类型的数字转换为int类型的数字并存储在数组中
                getIntNum[i] = Integer.parseInt(inputStringArr[i]);
            }
            for (int i : getIntNum) {
                if (i % 2 == 1) {   // 奇数加一
                    res[0]++;
                }
                if (i % 2 == 0) {   // 偶数加一
                    res[1]++;
                }
            }
        }else {
            System.out.println("数据为空!");
        }
        return res;
    }
}

然后是工厂类获取类对象:

public class Factory {
    public static IGetOdevity getIntance(){
        return new GetOdevity();
    }
}

最后是客户端进行调用:

import java.util.Arrays;

public class MAIN {
    public static void main(String[] args) {
//        System.out.println(Arrays.toString(Factory.getIntance().getOdevity(new InputNumber().inputNum())));
        int [] res = Factory.getIntance().getOdevity(new InputNumber().inputNum());
        System.out.println("奇数:" + res[0] + "\t偶数:" + res[1]);
    }
}

输出结果;

以上就是奇偶数获取并统计的简单案例。

 

posted on 2022-02-25 16:15  时间完全不够用啊  阅读(955)  评论(0编辑  收藏  举报