实验报告三及总结

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);
	}
}

结果截图

(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);
	}
}

结果截图

(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);
	}
}

结果截图

(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);
	}
}

结果截图

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

实验代码

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);
	}
}

结果截图

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);
	}

}

结果截图

实验总结:

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

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

学习总结:

方法重载与覆写的区别

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