Bootstrap

实验报告三及总结

java实验报告

实验三:String类的应用

一.实验目的

(1)掌握类String类的使用。
(2)学会使用JDK帮助文档。

二.实验内容

1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)

(1)统计该字符串中字母s出现的次数。
实验代码

package zifu;

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

结果截图
1581892-20190925205208560-1947027561.jpg

(2)统计该字符串中子串"is"出现的次数。
实验代码

package zifu;

public class Letter2 {
    public static void main(String[] args) {
        String str="this is a test of java";
        int count=0;
        for(int i=0;i<str.length();i++) {
            if(str.charAt(i)=='i'&&str.charAt(i+1)=='s')
                count++;
        }
        System.out.println("该字符串中子串“is”出现的次数:"+count);
    }
}

结果截图
1581892-20190925205349215-1320032782.jpg

(3)统计该字符串中单词"is"出现的次数。
实验代码

package zifu;

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

结果截图
1581892-20190925205458307-654079844.jpg

(4)实现该字符串的倒序输出。
实验代码

package zifu;

public class Letter4 {
    public static void main(String[] args) {
        StringBuffer n=new StringBuffer();
        n.append("this is a test of java");
        String str=n.reverse().toString();
        System.out.println(str);
    }
}

结果截图
1581892-20190925205601716-155884012.jpg

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

1581892-20190925214030543-1061370669.png

实验代码

package zifu;
import java.util.*;
public class Letter6 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();
        char c[]=s.toCharArray();
        char a[]=new char [c.length];
        int i,j=0;
        if(c.length==1) {
            System.out.println(c[0]);
        }
        else if(c.length==2) {
            System.out.print(c[1]);
            System.out.println(c[0]);
        }
        else
            for(i=c.length-3;i<c.length;i++) {
                a[j]=c[i];
                j++;
            }
            for(i=0;i<c.length-3;i++) {
                a[j]=c[i];
                j++;
            }
            String str=String.valueOf(a);
            System.out.print(a);
    }
}

结果截图
1581892-20190925205806860-184240324.jpg

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

实验代码

package zifu;

public class Letter5 {
    public static void main(String[] args) {
        String str="ddejidsEFALDFfnef2357 3ed";
        int a=0, b=0, c=0;
        for(int i=0;i<str.length();i++) {
            if(str.charAt(i)>=65&&str.charAt(i)<=90) {
                a++;
            }
            else if(str.charAt(i)>=97&&str.charAt(i)<=122) {
                b++;
            }
            else
                c++;
        }
        System.out.println("大写字母数:"+a);
        System.out.println("小写英文字母数:"+b);
        System.out.println("非英文字母数:"+c);
    }

}

结果截图
1581892-20190925205917889-863521127.jpg

实验总结:

                  第一二题刚开始写的时候用的是书上的String的方法,但是对于String方法的用法还不够熟悉,就没有用。第三小题用的是StringBuffer方法,第一大题总体还是挺简单的,主要是要注意一些小细节,例如:用到方法的时候要加‘.';刚开始经常没加。
                  第二题刚开始觉得挺难的,后来我和同学讨论了一下,找了一下规律,发现还是挺简单的。但是在第二个输出的时候出现了一点问题,同时输出两个字符会变成两个字符的ascii码值相加。最后没有解决,就用两个语句输出了。
                  第三题感觉不是很难,通过判断就可以找出各个的字母数了。

这次的实验题目总体没有什么问题。但对于String类的使用还不会,各种方法的使用都不太会,还有就是JDK帮助文档,暂时还没下载。

学习总结:

方法重载与覆写的区别

1581892-20190925214210373-918631293.jpg

this与super的区别

this:1.访问本类中的属性,如果没有此属性则从父类中查找。

     2.访问本类中的方法,如果没有此方法则从父类中查找。

     3.调用本类构造,必须放在构造方法的首行。

     4.表示当前对象。

super:1.访问父类中的属性。

        2.直接访问父类中的方法。

        3.调用父类构造,必须放在子类构造方法的首行。
this与super必须放在子类构造方法的首行。

final关键词:1.使用final声明的类不能有子类。

                 2.使用final声明的方法不能被子类所覆写。

                 3.使用final声明的变量即成为常量,常量不可以修改。

抽象类:1.包含一个抽象方法的类必须是抽象类。

          2.抽象类和抽象方法都要使用abstract关键字声明。

          3.抽象方法只需声明而不需要实现。

          4.抽象类必须被子类继承,子类必须覆写抽象类中的全部抽象方法。

对象的多态性:

1.对象的多态性主要分为以下两种类型:
(1)向上转型:父类对象 ← 子类对象;
(2)向下转型:子类对象 ← 父类对象;

在进行对象的向下转型之前,一定要发生对象向上转型。否则会出现对象转换异常。

转载于:https://www.cnblogs.com/hltltp/p/11587470.html

;