IO实战篇:奇偶数统计 | 带你学《Java语言高级特性》之七十七

简介: 在前几节中我们实战了很多案例,本节将带着读者开发一个较为简单的实际案例,实现对输入的数字的奇偶数字的出现次数的统计功能。

上一篇:IO实战篇:数据排序处理深入 | 带你学《Java语言高级特性》之七十六
在前几节中我们实战了很多案例,本节将带着读者开发一个较为简单的实际案例,实现对输入的数字的奇偶数字的出现次数的统计功能。

【本节目标】
通过阅读本节内容,你将进一步复习Service接口的相关内容及其实现方法,进一步掌握工厂类的写法,理解其作用与功能,编写相关代码实现对奇偶数字的统计功能。

奇偶数统计

编写程序,当程序运行后,根据屏幕提示输入一个数字字符串,输入后统计有多少个偶数数字和技术数字。
本质的就成就是进行每一个字符串的拆分,而后进行数字的转换处理。

1、定义INumberService,进行数字的处理服务。

public interface INumberService {
    public int[] stat() ;
}

2、定义NumberServiceImpl子类。

public class NumberServiceImpl implements INumberService {
    @Override
    public int[] stat() {
        int stat[] = new int [] {0,0} ;//第一个为偶数,第二个为奇数
        String str = InputUtil.getString("请输入数字信息:") ;
        String result [] = str.split("") ;//按照每个字符拆分
        for (int x = 0; x < result.length; x++) {
            if (Integer.parseInt(result[x]) % 2 == 0) {
                stat [0] ++ ;
            } else {
                stat [1] ++ ;
            }
        }
        return stat;
    }
}

3、建立工厂类。

public class Factory {
    private Factory() {}
    public static INumberService getInstance() {
        return new NumberServiceImpl();
    }
}

4、定义主类调用程序。

public class IOCaseDemo {
    public static void main(String[] args) {
        System.out.println(Arrays.toString(Factory.getInstance().stat()));
    }
}

执行结果:
请输入数字信息:1902389023890
[7, 6]

想学习更多的Java的课程吗?从小白到大神,从入门到精通,更多精彩不容错过!免费为您提供更多的学习资源。
本内容视频来源于阿里云大学

下一篇:IO实战篇:用户登录 | 带你学《Java语言高级特性》之七十八
更多Java面向对象编程文章查看此处

相关文章
|
1月前
|
存储 Java 数据处理
|
13天前
|
设计模式 安全 Java
Java并发编程实战:使用synchronized关键字实现线程安全
【4月更文挑战第6天】Java中的`synchronized`关键字用于处理多线程并发,确保共享资源的线程安全。它可以修饰方法或代码块,实现互斥访问。当用于方法时,锁定对象实例或类对象;用于代码块时,锁定指定对象。过度使用可能导致性能问题,应注意避免锁持有时间过长、死锁,并考虑使用`java.util.concurrent`包中的高级工具。正确理解和使用`synchronized`是编写线程安全程序的关键。
|
24天前
|
数据采集 分布式计算 大数据
Java语言在大数据处理中的应用
传统的大数据处理往往依赖于庞大的数据中心和高性能的服务器,然而随着大数据时代的到来,Java作为一种强大的编程语言正在被广泛应用于大数据处理领域。本文将探讨Java语言在大数据处理中的优势和应用,以及其在分布式计算、数据处理和系统集成等方面的重要作用。
|
1天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
1天前
|
人工智能 前端开发 Java
Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码
智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
27 10
|
6天前
|
Java Android开发 C++
Kotlin vs Java:选择最佳语言进行安卓开发
【4月更文挑战第13天】Java曾是安卓开发的主流语言,但Kotlin的崛起改变了这一局面。Google在2017年支持Kotlin,引发两者优劣讨论。Java以其成熟稳定、强大生态和跨平台能力占优,但代码冗长、开发效率低和语言特性过时是短板。Kotlin则以简洁语法、空安全设计和高度兼容Java脱颖而出,但社区和生态系统仍在发展中,可能存在学习曲线和性能问题。选择语言应考虑项目需求、团队熟悉度、维护性、性能和生态系统。无论选择哪种,理解其差异并适应新技术至关重要。
|
10天前
|
Java API 开发者
Java 8新特性之函数式编程实战
【4月更文挑战第9天】本文将深入探讨Java 8的新特性之一——函数式编程,通过实例演示如何运用Lambda表达式、Stream API等技术,提高代码的简洁性和执行效率。
|
17天前
|
Java
Java语言打印九九乘法表(详解)
Java语言打印九九乘法表(详解)
15 1
Java语言打印九九乘法表(详解)
|
21天前
|
存储 安全 Java
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
30 1
|
21天前
|
Java API Apache
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(基础编程篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(基础编程篇)
43 0