码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-09-27 19:06:46      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:rgs   语句   对象   运行   tchar   info   解决办法   使用   子类   

试验报告

1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
·统计该字符串中字母s出现的次数。
·统计该字符串中子串“is”出现的次数。
·统计该字符串中单词“is”出现的次数。
·实现该字符串的倒序输出。

代码

package text3;

//字符串中字母s出现的次数
public class Characters {
    public static void main(String[] args) {
        String str = "this is a test of java";
        int count=0;
        int i;
        char[] ch = str.toCharArray();
        for(i=0;i<ch.length;i++)
        {
            if(ch[i]=='s')
                count++;
        }
        System.out.println("s个数是:"+count);
    }
}

//字符串中子串“is”出现的次数
public class Characteriscount {
    public static void main(String[] args) {
        String str = "this is a test of java";
        int count=0;
        int i;
        int j;
        String ch="is";
        j=0;
        
        for(i=0;i<str.length();i++)
        {
            if(str.indexOf(ch,j)==-1)
                break;
            
            else
            {
                count++;
                j=str.indexOf(ch,j)+1;
            }
        }
        
        System.out.println("is个数是:"+count);
    }
}

//字符串中单词“is”出现的次数
public class Characterisword {
    public static void main(String[] args) {
        String str = "this is a test of java";
        int count=0;
        int i;
        
        String[] ch= str.split(" ");
        
        for(i=0;i<ch.length;i++)
        {
            if(ch[i].equals("is"))
                count++;
            
        }
        
        System.out.println("单词is个数是:"+count);
    }
}

//字符串的倒序输出
   //单词倒序输出
public class Characterinvertprint {
    public static void main(String[] args) {
        String str = "this is a test of java";
    
        int i;
        
        String[] ch = str.split(" ");
        
        for(i=ch.length-1;i>=0;i--)
        {
            System.out.print(ch[i]+" ");
        }
        
    }
}

//字母倒序输出
public class Characterprint {
    public static void main(String[] args) {
        String str = "this is a test of java";
    
        int i;
        
        char[] ch = str.toCharArray();
        
        for(i=ch.length-1;i>=0;i--)
        {
            System.out.print(ch[i]);
        }
        
    }
}

遇到的问题

1.统计该字符串中字母s出现的次数 时输出结果错误;
技术图片

解决办法:不使用substring方法,改为使用indexOf方法查找到指定字符串就会返回字符串的最后的位置。
2.实现该字符串的倒序输出 时报错,字符串数组的最后字符串下标是长度减一;
技术图片

解决办法:把i=ch.lenght;改为i=lenght-1。

运行结果

1.1技术图片

1.2技术图片

1.3技术图片

1.4技术图片

技术图片

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

代码

package Encrypt;


import java.util.*;
public class Encryptstr {
    private String str;
    
    public Encryptstr() {
        
    }

    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }
    
    //输入字符串
    public void Inputstr() {
        Scanner pw = new Scanner(System.in);
        String str = pw.next();
        
        this.str = str;
        pw.close(); 
    }
    
    //加密过程
    public String encrystr() {
        char[] ch = str.toCharArray();
        int i;
        for(i=0;i<str.length();i++)  //后移3位
        {
            ch[i]=(char)(ch[i]+3);
            
        }
        
        //重新连成字符串
        String str = new String(ch);
        this.str = str;
        return str;
    }
    
    //解密
    public String deciphering() {
        char[] ch = str.toCharArray();
        int i;
        for(i=0;i<str.length();i++)  //后移3位
        {
            ch[i]=(char)(ch[i]-3);
            
        }
        
        //重新连成字符串
        String str = new String(ch);
        this.str = str;
        return str;
    }
    
    //测试
        public static void main(String args[]) {
            Encryptstr str1 = new Encryptstr();
            
            System.out.println("请输入需加(解)密内容:");
            str1.Inputstr();
            
            
            System.out.println("加密后:"+str1.encrystr());
            
            System.out.println("解密后:"+str1.deciphering());
        }
}   

遇到的问题

无。

运行结果

技术图片

技术图片

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

代码

package Count;

public class Countchar {
    public static void main(String args[]) {
        String str = "ddejidsEFALDfnef2357 3ed";
        
        int i;
        int countcapitals=0;   //大写英文字母数
        int countsmall=0;     //小写英文字母数
        int countnoletter=0;    //非英文字母数
        
        for(i=0;i<str.length();i++)
        {
            if(str.charAt(i)>='A'&& str.charAt(i)<='Z')
                countcapitals++;
            
            else if(str.charAt(i)>='a'&& str.charAt(i)<='z')
                    countsmall++;
            
            else
                countnoletter++;
        }
        
        System.out.println("大写英文字母数:"+countcapitals);
        System.out.println("小写英文字母数:"+countsmall);
        System.out.println("非英文字母数:"+countnoletter);
    }
}

遇到的问题

无。

运行结果

技术图片

课程总结

本周学习了

继承

概念
类的继承方式:class 父类{}
class 子类 extends 父类{}
继承的实现:通过继承的功能可以直接把父类中的操作直接拿到子类中使用,子类也可以定义自己的属性或方法。
注意:只可多层继承,不可多重继承;子类不能直接访问父类中的私有成员,可以调用父类中的非私有方法,但不能直接调用父类中的私有成员。
方法覆写:指子类定义了与父类中同名的方法。
super()可以从子类中调用父类中的构造方法、普通方法、属性。
super调用父类的构造方法:语句必须放在子类构造方法的首行,父类没有构造方法时,会在父类中自动生成一个空的构造方法,然后通过在子类中用super();调用,若父类中构造了非空的构造方法,则不会再自动生成空构造方法,此时子类中调用父类的构造方法super();括号中要带参数。
this与super的区别

抽象类

定义及使用:
(1)包含一个抽象方法的类必须是抽象类;
(2)抽象类和抽象方法都要用abstract声明;
(3)抽象方法只需声明而不需实现;
(4)抽象类必须被子类继承,如果子类不是抽象类,必须覆写抽象类的全部抽象方法。

final关键字

声明时注意:
(1)final声明的类不能有子类;
(2)final声明的方法不能被子类覆写;
(3)final声明的变量会成为常量。

对象的多态性

(1)子类对象->父类对象 (向上转型)
(2)父类对象->子类对象 (向下转型)
注:向上转型是自动的,向下转型是强制的,必须明确指明要转型的子类的类型,(为保证转型成功)向下转型之前必须先有对象向上转型。
格式:
向上 父类 父类对象 = 子类实例;
向下 子类 子类对象 = (子类)父类实例;

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

标签:rgs   语句   对象   运行   tchar   info   解决办法   使用   子类   

原文地址:https://www.cnblogs.com/LeeMayZ/p/11590666.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!