课时68:案例分析三(字符串统计)

简介: 编写程序,统计出字符串“want you to know one thing”中字母n和字母 o 的出现次数。


课时68:案例分析三(字符串统计)

01. 定义一个单独的处理类

 

对于程序而言,最简单的操作方法就是直接在主方法里面定义一个操作,或者直接定义一个新的类进行处理。


范例:定义一个单独的处理类。

class StringUtil {
//返回的第一个内容为字母n的个数,第二个内容为字母o的个数
    Public static int [] count(String str) {
        int count Data [] =new int [2];
        Char [] data = str.toCharArray(); // 将字符串变为字母数组
        for (int x = 0 ; x < data.length ; x ++){
            if (data[x] == 'n' || data[x] == 'N'){
                countData[0] ++;
            }
            if (data[x] == 'o' || data[x] == 'O'){
                countData[1] ++;
            }
        }
        return countData;
    }
}
Public class JavaDemo {
    Public static void main(String args[]){
       String str = "want you to know one thing" ;
       int result [] = StringUtil.count(str) ;
       System.out.println("字母n的个数:" + result[0]) ;
       System.out.println("字母o的个数:" + result[1]) ;
    }
}

image.png

这个解决方案只是一种顺序式的思维模式解决的,假设说现在统计的是字母o或者n的个数,那么还有可能以后进行各种其他统计的设计。

 

02. 面向对象、继承


字符串统计操作:

image.png

StringUtill : 字母统计、单词统计、Xxx统计。可通过继承的方案来实现。

字母统计:根据当前需求统计处理。

class StringUtil {
    private String countent ; //需要保存字符串
    Public StringUtil(String content) {
        this.content = content;
    }
    Public String getContent() {
        return this.content ;
    }
    Public String getInfo() { //默认的信息返回
        return this.getContent() ;
    }
}
class StringCount extends StringUtil{
    private int nCount;
    private int oCount;
    Public StringCount(String content){
        super(content);
        this.countChar(); //构造方法统计
    }
    Public void countChar(){
        Char [] data = super.getContent.toCharArray();
        for (int x = 0 ; x < data.length ; x ++){
            if (data[x] == 'n' || data[x] == 'N'){
                this.nCount ++;
            }
            if (data[x] == 'o' || data[x] == 'O'){
                this.oCount ++;
            }
        }
    }
    Public int getNCout() {
        return this.nCount ;
    }
    Public int getOCout() {
        return this.oCount ;
    }
    Public String getInfo() {
        return "字母n的个数:" + this.nCount +"、字母o的个数:" + this.oCount;
    }
}
Public class JavaDemo {
    Public static void main(String args[]){
       StringCount sc = new StringCount("want you to know one thing");
       System.out.println(sc.getInfo()) ;
    }
}

image.png

任何方案都可以,但第一种方案比较直观,第二种方案更加适合于结构化设计。

相关文章
|
7月前
|
Oracle Java 关系型数据库
课时48:JavaDoc文档简述
主要讲解了Java DOC文档的使用方法和技巧。首先,介绍了Java DOC的简介,强调了在开发过程中需要大量使用API文档。其次,详细解析了Java DOC的组成结构,包括位的完整定义、类的相关说明以及方法的详细解释。 1.Java DOC简介 2.Java DOC文档的组成
163 20
|
JavaScript iOS开发 MacOS
Jupyter模块Plotly及labextension插件的安装
Jupyter模块Plotly及labextension插件的安装
442 1
|
7月前
|
Java
课时18:Java运算符(逻辑运算符)
课时18介绍了Java中的逻辑运算符(与、或、非)。通过范例详细讲解了非操作的使用,展示了如何正确应用逻辑非(!)。接着分别探讨了与操作(& 和 &&)及或操作(| 和 ||),强调了短路运算符(&& 和 ||)在性能和安全性上的优势。课程通过具体代码示例演示了不同逻辑运算符的效果及其应用场景。
176 5
|
7月前
|
Java 程序员 数据处理
课时19:Java运算符(位运算符)
课时19介绍Java中的位运算符,涵盖进制转换、位与、位或及移位操作。重点讲解了二进制与其他进制的转换方法,通过具体范例演示了位与和位或运算的过程,并展示了八进制和十六进制的处理方式。此外,还解释了逻辑运算符(&&、||)与位运算符(&、|)的区别及其应用场景,特别是位运算在加密中的应用。
153 5
|
7月前
|
Java
课时10:Java数据类型划分(整型类型)
本文主要围绕Java中整型数据展开,详细讲解整型变量、常量的概念,整型数据运算规则,包括数据溢出问题及解决方法,数据类型转换(自动转换与强制转换)的原理和注意事项,同时介绍了整型数据默认值的相关知识,以及byte数据类型与int数据类型的关系和使用场景,帮助读者全面掌握Java整型数据的相关内容。
191 4
|
7月前
|
Java 开发者
课时98:泛型接口
本文聚焦Java泛型接口,阐述泛型不仅能在位(类)上定义,还可在接口中使用。通过实际代码示例,详细介绍泛型接口的定义以及子类实现泛型接口的两种方式,帮助读者理解其概念和应用,强调在实际编程中理解和掌握这些知识的重要性。 1.泛型接口的定义 2.泛型接口的子类实现方式
153 2
|
7月前
|
Java
课时103:生成jar文件
本文介绍了Java中生成和使用JAR文件的基本概念与操作。JAR文件用于将多个类文件打包成一个压缩文件,便于管理和分发。通过JDK提供的`jar`命令可以创建JAR文件,并可通过设置CLASSPATH环境变量来配置和使用这些文件。文中还演示了如何定义、编译和打包一个简单的Java程序为JAR文件,并详细解释了JAR文件的结构及配置方法。此外,简要提及了JDK 1.9后引入的模块化系统对JAR文件的影响。
189 1
|
7月前
|
测试技术
课时108:用例图
课时108介绍了用例图的设计与描述。用例图用于展示系统中不同角色的功能分配,如系统管理员拥有系统初始化、备份、公告发布等功能,而普通管理员仅负责公告管理。通过建立Use Cases图,可以直观呈现各角色的具体功能,帮助在项目设计阶段明确角色权限和职责。用例图是详细设计和概要设计的重要组成部分,有助于清晰表达系统的功能结构。
170 1
|
7月前
|
设计模式 Java uml
课时107:时序图
课时107介绍了时序图的描述与设计。时序图用于展示代码执行流程,如Java程序中接口IMessage、类MessageImpl及Factory的调用顺序。通过Power Designer创建UML Sequence Diagram,定义类操作结构并绘制消息传递路径,清晰呈现工厂模式下对象实例化和方法调用的过程。时序图帮助理解程序逻辑,适用于项目开发中的流程分析与文档记录。
208 1
|
7月前
|
设计模式 Java
课时89:工厂设计模式
课时89介绍工厂设计模式(Factory),涵盖接口的定义与使用、程序结构设计及工厂设计的核心概念。通过实例代码展示如何利用接口实现子类的向上转型,并通过工厂类解耦主类与子类的关系,从而实现更灵活和可扩展的设计。工厂模式使客户端无需关心具体子类的创建过程,仅需通过工厂类获取对象实例,简化了系统的维护和扩展。