实验三 String类的应用
一、实验目的
(1) 掌握类String类的使用;
(2) 学会使用JDK帮助文档;
二、实验内容
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
① 统计该字符串中字母s出现的次数。
② 统计该字符串中子串“is”出现的次数。
③ 统计该字符串中单词“is”出现的次数。
④ 实现该字符串的倒序输出。
解题思路
实验源码
public class demo2 {
public static void main(String[] args)
{
String str ="this is a test of java";
int sSum=sum("s",str);
int isSum=sum("is",str);
int _is_Sum=sum(" is ",str);
StringBuffer a=new StringBuffer("this is a test of java");
a=a.reverse();
System.out.println(sSum);
System.out.println(isSum);
System.out.println(_is_Sum);
System.out.println(str);
}
static int sum(String str,String Sent)
{
int Sum=0,number=0,i=0;
while(number!=-1)
{ number=Sent.indexOf(str,i);
if(number==-1) {
return Sum;}
else{
Sum++;
i=number+1;
}
}
return Sum;
}
}
写到这里是没有写一个漏写了一个倒抒语句Stringbuffer,后来问了下伙伴,她告诉我了另一种方法,然后就有了下面,相较于下面的倒序输出语句,其实还有一种比较简单的语句,但在这里我没有写出来因为我不会,但我看到有人用了。
这个题其实只有两部分很简单,而且要想写出来,方法也单一就是书上111页的那几个方法。但是也有几种巧妙地方法,我在参考的时候没有看懂,比我的方法精简。
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
实验源码
没有跑出结果,做的时间比较晚仓促,没有仔细想其细节问题。答案错误
3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字副个数
public class demo2{
public static void main(String[] args) {
String str="ddejidsEFALDFfnef2357 3ed";
char a[] = str.toCharArray();
int countother=0;
for (int i = 0; i < str.length(); i++) {
if (a[i] >= 'A' && a[i] <= 'Z') {
System.out.print(str.charAt(i));
}
else if (a[i] >= 'a' && a[i] <= 'z') {
System.out.print(str.charAt(i));
System.out.println();}
else {
countother++;}
}
System.out.println("其他:"+countother);
}
}
这个在输出的时候只写了一个输出其他的字符个数的语句,其实应该在开始的时候用同一种方法输出三种字的个数。
学习总结:
本周主要学习的内容有1,继承 2,方法的覆写与重载 3,抽象类4,super关键字
this与super的区别 | |||
---|---|---|---|
序号 | 区别点 | this | super |
1 | 属性访问 | 访问本类中的属性,如果本类中没有此属性则从父类中继续查找 | 访问父类中的属性 |
2 | 方法 | 访问本类中的方法,如果本类中没有此方法,则从父类中继续查找 | 直接访问父类中的方法 |
3 | 调用构造 | 调用本类构造,必须放在构造方法的首行 | 调用父类构造,必须放在子类构造方法的首行 |
4 | 特殊 | 表示当前对象(可指向子类) | 无此概念(不可指向父类) |
序号 | 区别点 | 重载 | 覆写 |
1 | 单词 | Overloading | Overriding |
2 |
定义
| 方法名称相同,参数类型或个数不同 | 方法名称,参数类型,返回值全部相同 |
3 | 对权限无要求 | 被覆写的方法不能拥有更严格的权限 | |
4 | 范围 | 发生在一个类中 | 发生在继承类中 |
还有在作业中总是用到111页的一些方法,
关于老师上课讲到的一个猫狗问题,我没有听的太懂,就只是想起上课做过的这个习题。
阅读以下程序,写出输出结果。
class Animal {
Animal() {
System.out.print ("Animal "); }
}
public
class Dog extends Animal {
Dog() {
System.out.print ("Dog "); }
public static void main(String[] args) {
Dog snoppy= new Dog(); }
}