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)向下转型:子类对象 ← 父类对象;