zoukankan      html  css  js  c++  java
  • 第五周课程总结&试验报告(三)

    第五周课程总结&试验报告(三)

    实验三 String类的应用

    • 实验目的
    • 掌握类String类的使用;
    • 学会使用JDK帮助文档;
    • 实验内容
    • 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
      • 统计该字符串中字母s出现的次数。
      • 统计该字符串中子串“is”出现的次数。
      • 统计该字符串中单词“is”出现的次数。
      • 实现该字符串的倒序输出。

    实验代码:

    package main;
    
    class Person{
        String str="This is a test of java";
        
        public void test1(){
            int count=0,i=0;
            
            while(str.indexOf("s",i)!=-1){
                count++;
                i=str.indexOf("s",i)+1;
            }
            System.out.println("字母s出现的次数:"+count);
        }
        public void test2(){
            int count=0,i=0;
            
            while(str.indexOf("is",i)!=-1){
                count++;
                i=str.indexOf("is",i)+1;
            }
            System.out.println("子串“is”出现的次数:"+count);
        }
        public void test3(){
            int count=0,i=0;
            
            while(str.indexOf(" is",i)!=-1||str.indexOf("is ",i)!=-1){
                count++;
                i=str.indexOf(" is",i)+1;
                i=str.indexOf("is ",i)+1;
            }
            System.out.println("单词“is”出现的次数:"+count);
        }
        public  void test4(){
            char s[]=str.toCharArray();
            System.out.print("字符串的倒序输出结果:");
            for(int i=str.length()-1;i>=0;i--)
            {
                System.out.print(s[i]);
        }
     }
    }
    
    public class Main1 {
        
        public static void main (String[] args){
            Person per=new Person();
            per.test1();
            per.test2();
            per.test3();
            per.test4();
        }
    }

    实验结果截图:

     实验过程和问题:

    这道题的的前三个问题老师在课堂上讲过,也并不难,但用加空格的方式查找单词“is”虽然这道题可以,但在“is”位于尾部或首部时查找不到,于是我同时用了“is ”和“ is”来查找才解决了问题。而第四题则用toCharArray方法来将字符串变为字符数组来储存起来,再从尾到头输出出来。在实验过程遇到了上周同样的问题“方法 main 不能声明为 static;只能在静态类型或顶级类型中才能声明静态方法”,用快速修正也修复不了,最后找到了原因:少了一个大括号,导致大括号不匹配,从而使得静态的方法或属性在类外定义了。仔细查找后找到了错误并改正了,看来写代码要细心呀。

    2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。

     实验代码:

    package main;
    
    import java.util.*;
    
    public class Main1 {
        
        public static void main (String[] args){
            System.out.println("输入一个字符串:");
            Scanner sc=new Scanner(System.in);
            char a[]=sc.nextLine().toCharArray();
            char b[]= new char [100] ;
            int j=0;
            for(int i=a.length-3;i<a.length;i++){
                b[j]=a[i];
                j++;
            }
            for(int i=0;i<a.length-3;i++){
                b[j]=a[i];
                j++;
            }
            System.out.println(b);
        }
    }

    实验结果截图:

    实验过程和问题:

    刚开始没有看懂题意,明白后其实也还好,关键是用 nextLine()对输入的数据进行读取,再用toCharArray()方法将字符串存进一个字符串数组。之后用一个字符数组先存储字符串数组的后三个字符串,再从头到尾将余下的字符串存进去,最后输出。

     3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。

    实验代码:

    package main;
    
    public class Main1 {
        
        public static void main (String[] args){
            String str="ddejidsEFALDFfnef2357 3ed";
            char s[]=str.toCharArray();
            int sum1=0,sum2=0,sum3=0;
            for(int i=0;i<s.length;i++){
                if(s[i]>='A'&&s[i]<='Z'){
                    sum1++;
                }
                else if(s[i]>='a'&&s[i]<='z'){
                    sum2++;
                }
                else {
                    sum3++;
                }
            }
            System.out.println("大写字母数:"+sum1+"
    "+"小写英文字母数:"+sum2+"
    "+"非英文字母数:"+sum3+"
    ");
        }
    
    }

    实验结果截图:

     实验过程:这道题首先用toCharArray方法来将字符串变为字符数组用数组储存,之后就可以逐个找出来并计数,用C语言做过没有很大的差别,没有花多少时间也没有出错。

    课程总结:

    方法的重载和覆写的区别:

    重载 覆写
    方法名称相同,参数的个数及类型不同 方法名称,返回值类型,参数的个数,参数的类型均相同
    对权限没有要求 被覆写的方法不能拥有比父类更严格的访问控制权限
    发生在一个类中 发生在继承类中

    方法的重载:方法名称相同,参数的个数或类型不同。不能有两个名字相同,参数类型也相同却返回值不同的方法。

    方法的覆写:子类定义了与父类方法名称,返回值类型、参数类型及个数完全相同的方法。被覆写不能够拥有比父类更为严格的控制权限。public>default(不加任何说明 包访问权限)>private(只能在本类中使用)

    继承:子类可以继承父类非private的属性、方法。子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。子类可以用自己的方式实现父类的方法。Java的继承是单继承,不可以多重继承,允许进行多重继承。

    super关键字:使用super可以从子类中调用父类的方法、属性。super()和this()均需放在构造方法内第一行,因此与this不能同时出现,main方法不能使用this和super.

    学习总结:写了几周的代码后发现java的学习要多写才行,因为有时会忘记关键字、方法的作用,一些方法概念也不清楚意思,要查看帮助文档,不过java写起代码来感觉不错,格式的要求没那么严格,在软件的帮助下代码基本上不会有错误,效率要高很多。

  • 相关阅读:
    Linux 磁盘管理
    Linux 特殊权限及if语句
    Linux find命令
    MySQL索引知识介绍
    MySQL库表设计小技巧
    教你用SQL实现统计排名
    Truncate用法详解
    utf8字符集下的比较规则
    关于Aborted connection告警日志的分析
    MySQL DDL详情揭露
  • 原文地址:https://www.cnblogs.com/198266qq/p/11593565.html
Copyright © 2011-2022 走看看