实验三 String类的应用
一、实验目的
(1) 掌握类String类的使用;
(2) 学会使用JDK帮助文档;
二、实验内容
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
① 统计该字符串中字母s出现的次数。
② 统计该字符串中子串“is”出现的次数。
③ 统计该字符串中单词“is”出现的次数。
④ 实现该字符串的倒序输出。
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
1.实验源码
package test;
public class 实验三1 {
public static void main(String[] args) {
String s="this is a test of java";
text pr=new text();
pr.s出现的次数(s);
pr.子串is出现的次数(s);
pr.单词is出现的次数(s);
pr.倒序输出(s);
}
}
class text {
public void s出现的次数(String n){
int count=0;
char ss[]=n.toCharArray();//将字符串变为字符数组
for(int i=0;i<ss.length;i++)
if(ss[i]=='s')
count++;
System.out.println("s出现的次数="+count);
}
public void 单词is出现的次数(String n){
int count=0;
String ss[]=n.split(" ");//按空格将字符串拆分
for(String e:ss)
{
if(e.equals("is")) {
count++;
}
}
System.out.println("单词is出现的次数="+count);
}
public void 子串is出现的次数(String n) {
int count =0,i=0;
int m=n.indexOf("is",i);//从零开始寻找字符串is
while(m!=-1) {
count++;//找到后计数加一
i=m+1;
m=n.indexOf("is",i);//从找到的位置的后一位继续寻找
}
System.out.println("子串is出现的次数="+count);
}
public void 倒序输出(String n) {
char c[]=n.toCharArray();
System.out.print("倒序输出的结果为:");
for(int i=n.length()-1;i>=0;i--)
{
System.out.print(c[i]);
}
}
}
实验结果
2.实验源码
package test;
import java.util.Scanner;
public class 实验三2 {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
String c=s.nextLine();
int j=0;
char[] n=c.toCharArray();
char[] m=new char[100];//定义新数组
for(int i=n.length-3;i<n.length;i++)
{
m[j]=n[i];//将数组的最后三位存储到新数组中
j++;
}
for(int i=0;i<n.length-3;i++)
{
m[j]=n[i];//将除最后三位的其他数一次存储到新数组中实现数组循环
j++;
}
System.out.print(m);//输出新数组
}
}
实验结果
3.实验源码
package test;
public class 实验三3 {
public static void main(String[] args) {
int i;
int a=0,b=0,c=0;
String ss="ddejidsEFALDFfnef2357 3ed";
char s[]=ss.toCharArray();//将ss转化为字符数组
for(i=0;i<s.length;i++)
{
if(s[i]<='Z'&&s[i]>='A')
a++;
else if(s[i]<='z'&&s[i]>'a')
b++;
else
c++;
}
System.out.println("大写字母数="+a);
System.out.println("小写字母数="+b);
System.out.println("非英文字母数="+a);
}
}
实验结果
课程总结
1.继承
类的继承格式
class 父类{}
class 子类 extends 父类{}
通过继承,可以将父类的内容保留在子类中,子类也可以定义自己的属性或方法
class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Student extends Person{
private String school;
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
在Java中,一个子类只能继承一个父类,一个父类还可以有一个父类。
注:子类是不能直接访问父类中的私有成员,但子类可以调用父类中的非私有方法,但是不能直接调用父类中的私有成员。
子类对象在实例化之前会默认调用父类中的构造方法。所以在实例化子类对象之前需要先将父类中的属性进行初始化。
2.方法的覆写
方法的覆写是指子类定义了与父类中同名的方法,但是在方法覆写时必须考虑到权限,即被子类覆写的方法不能拥有父类方法更加严格的访问权限。
权限大小:private<defaut<public
方法的重载与覆写的区别
序号 | 区别点 | 重载 | 覆写 |
---|---|---|---|
1 | 单词 | Overloadig | Overriding |
2 | 定义 | 方法名称相同,参数的类型或个数不同 | 方法名称、参数类型、返回值类型全部相同 |
3 | 对权限没有要求 | 被覆写的方法不能拥有更严格的权限 | |
4 | 范围 | 发生在一个类中 | 发生在继承类中 |
3.super关键字
1).使用super可以从子类中调用父类中的构造方法、普通方法、属性
2).super语句必须放在子类构造方法的首行,因此与this不能同时出现
3).在主方法中不能使用this和super方法
4.final关键字
1).使用final声明的类不能有子类
2).使用final声明的方法不能被子类所覆写
3).使用final声明的变量即为常量,不可修改
4).使用final声明变量时,要求全部的字母大写