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

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

实验三 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+"\n"+"小写英文字母数:"+sum2+"\n"+"非英文字母数:"+sum3+"\n");
    }

}

实验结果截图:

 

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

 

课程总结:

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

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

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

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

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

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

 

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

转载于:https://www.cnblogs.com/198266qq/p/11593565.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值