Java实验报告
班级计科二班 学号 20188429 姓名 罗璇哲
完成时间
评分等级
实验三 String类的应用
一、 实验目的
(1) 掌握类String类的使用;
(2) 学会使用JDK帮助文档;
二、 实验内容
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
① 统计该字符串中字母s出现的次数。
源代码
public class Main1 {
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('s'==str.charAt(i))
count++;
}
System.out.println("'s'的个数为"+count);
}
}
实验结果
② 统计该字符串中子串“is”出现的次数。
源代码
public class Main1 {
public static void main(String args[]) {
String str="this is a test of java";
int count=0;
char s[];
s=str.toCharArray();
for (int i=0;i<s.length;i++) {
if(s[i]=='i') {
for(int j=i;j<s.length;j++) {
if(s[j]=='s') {
count++;
break;
}
}
}
}
System.out.println("子串is的个数为"+count);
}
}
实验结果
③ 统计该字符串中单词“is”出现的次数。
实验源码
public class Main2 {
public static void main(String args[]) {
String str="this is a test of java";
String n[]=str.split(" ");
int count=0;
for(int i=0;i<6;i++) {
if(n[i].equals("is"))
count++;
}
System.out.println("单词is的个数是"+count);
}
}
实验结果
④ 实现该字符串的倒序输出。
源代码
public class Main3 {
public static void main(String args[]) {
StringBuffer s=new StringBuffer();
s.append("this is a test of java");
String str=s.reverse().toString();
System.out.println(str);
}
}
实验结果
第四题有借鉴到后面StringBuffer的常用方法,有使用reverse方法实现倒序。
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
源代码
public class Main5{
public static void main(String[] args) {
System.out.println("输入一个字符串");
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
char a[]=s.toCharArray();
char b[]=new char [a.length];
int i=0,k=0;
if (a.length==1 ||a.length==2 ) {
System.out.println("请输入三位及以上字符");
}
else {
for(i=a.length-3;i<a.length;i++) {
b[k]=a[i];
k++;
}
for(i=0;i<a.length-3;i++) {
b[k]=a[i];
k++;
}
System.out.println("输出加密的结果"+String.valueOf(b));
}
}
}
实验结果
3.已知字符串"ddejidsEFALDFfnef2357 3ed"。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
源代码
public static void main(String args[]) {
String str="ddejidsEFALDFfnef2357 3ed";
int big=0,small=0,blank=0;
for(int i=0;i<str.length();i++) {
char s=str.charAt(i);
if (s>='A' && s<='Z') {
big++;
}
else if(s>='a' && s<='z') {
small++;
}
else {
blank++;
}
}
System.out.println("大写字母有"+big+"个");
System.out.println("小写字母有"+small+"个");
System.out.println("非字母有"+blank+"个");
}
}
实验结果
学习总结
1.String类的常用方法的使用
2.继承知识点:只允许多层继承不能够多重继承,即一个子类只可以继承一个父类。
3.子类是不可以直接访问父类的私有成员的,但是子类可以调用父类的非私有方法,但是不能够直接调用父类的私有成员。
4.super的使用,与this的调用方法相同,不可同时使用,语句必须放在子类构造方法首行。
5.方法的重载与覆写的区别
6.final关键字,使用final声明的类不能够有子类,声明的方法也不会被子类所覆写,使用final声明的变量为常量,常量不可修改。
总结
首先,这周的题目难度是在我可接受范围内吧,自己本周也有花时间在Java作业上,再写题目的过程中还比较顺利,就第二道题目的时候有卡壳,后面有听到室友的讨论,他们帮我解决了问题。这种程度的题目我还比较可以写,再加上有些题目老师上课已经讲过。发现自己很大程度上还是停留在读代码的阶段,自己只能够写比较简单的代码。继续加油吧