第五周课程总结&第三次实验报告

实验三 String类的应用

实验目的

掌握类String类的使用;
学会使用JDK帮助文档;

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

   统计该字符串中字母s出现的次数。
   统计该字符串中子串“is”出现的次数。
   统计该字符串中单词“is”出现的次数。
   实现该字符串的倒序输出。

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

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

一、实验
第一题
实验代码

public class Dome1 {
     public static void main(String[] args) {
    	 String str="This is a test of java";
    	 int x=0;
    	 int y=0;
    	 for(int i=0;i<str.length();i++) {
    		 if(str.charAt(i)=='s')
    		     x++;
    		 if(str.charAt(i)=='i'&&str.charAt(i+1)=='s')
    		     y++;
		}
    	 System.out.println("字母s出现的次数:"+x);
    	 System.out.println("子串is出现的次数:"+y);
     }
}

实验结果

实验代码

public class Dome2 {
	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);
}
}

实验结果

实验代码

public class Dome3 {
	public static void main(String[] args) {
		String str="This is a test of java";
		char s[] = str.toCharArray();
		for (int i=s.length-1;i>=0;i--) {
            System.out.print(s[i]);
        }
		
	}

}

实验结果

第二题
实验代码

package Work;

import java.util.*;

public class Dome4 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一串大于3个字符的英文字符串或解密字符串");
		String x= sc.nextLine();
		char y[]=x.toCharArray();
		char z[]=new char[y.length];
		int i=0,j=0;
		for(i=y.length-3;i<y.length;i++) {
            z[j]=y[i];
            j++;
        }
        for(i=0;i<y.length-3;i++) {
            z[j]=y[i];
            j++;

		}
        String str=String.valueOf(z);
        System.out.println("加密或解密结果如下:");
        System.out.print(z);

}
}

实验结果

遇到的问题

在运行过程中发现如果输入的字符小于三个的话就不具有时效性,所以这个编程只适用于输入大于三个字符的字符串
第三题
实验代码

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

}

实验结果

编程总结
本次的题目都是关于怎么运用String类的方法,第一大题基本上老师上课都有讲过,第二大题比较有难度,要运用到Scanner类的方法,后面对字符串进行拆分成点个字符后在对拆分后的字符编进数组里进行移动。第三大题则是考验我们对英文字母的ASCII熟悉程度,之后对字符串进行分类

二、课程总结
本周我们学习了继承和抽象类,还接触了一点点多态性
1、继承
通过继承可以用子类的继承父类的属性


对此,在继承中我们还学习到一种新的方法,“覆写”,这是与之前学习的重载不一样的方法

在继承中还有两种关键字--super和final
①super
super的作用是也是调用构造方法,但是和this有点不同

②final
他是一种完结器,可以停止使用父类

2、抽象类
抽象类是一种专门用来当作父类的方法

3、多态性

这就是本周我所学到的知识,现在开始学习面向对象的高级篇了,也从一些简单的内容开始变得复杂了,不过我觉得老师讲的我们很好,会通过在上课编程把难懂的概念变得通俗易懂,我们也消化的很好。

原文地址:https://www.cnblogs.com/xzy999123/p/11599734.html