实验三 String类的应用
实验目的
掌握类String类的使用;
学会使用JDK帮助文档;
实验内容
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
(1)统计该字符串中字母s出现的次数。
package Zuoye;
class Is {
public static void main(String[] args) {
String str = "this is a test of java";
int sum=0;
char c[]=str.toCharArray();
for(int i=0;i<c.length;i++){
if(c[i]=='s')
sum++;
}
System.out.println("s出现"+sum+"次");
}
}
(2)统计该字符串中子串“is”出现的次数。
package Zuoye;
class Is {
public static void main(String[] args) {
String str = "this is a test of java";
int sum=0;
char[]a=str.toCharArray();
for(int i=0;i<a.length;i++) {
if(a[i]=='i') {
if(a[i+1]=='s')
sum++;
}
}
System.out.println("字符is出现:"+sum+"次数");
}
}
(3)统计该字符串中单词“is”出现的次数。
package Zuoye;
class Is {
public static void main(String[] args) {
String str = "this is a test of java";
int sum=0;
char a[]=str.toCharArray();
for(int i=0;i<a.length;i++) {
if(a[i]==' '&&a[i+1]=='i'&&a[i+2]=='s'&&a[i+3]==' ') {
sum++;
}
}
System.out.println("单词is出现:"+sum+"次");
}
}
(4)实现该字符串的倒序输出。
package Zuoye;
class Is {
public static void main(String[] args) {
String str = "this is a test of java";
char a[] = str.toCharArray();
for (int i=a.length-1;i>=0;i--) {
System.out.print(a[i]);
}
}
}
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
package Zuoye;
import java.util.Scanner;
public class Is {
public static void main(String[] args) {
System.out.println("输入密码:");
Scanner sc=new Scanner(System.in);
String str = sc.next();
char a[]= str.toCharArray();
char b[] = new char[8] ;
int n=0;
for(int i = a.length-4;i<a.length;i++) {
b[n]=a[i];
n++;
}
for(int j=0;j<a.length-4;j++) {
b[n]=a[j];
n++;
}
System.out.println("加密结果:");
System.out.println(b);
}
}
3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
package Zuoye;
public class Is {
public static void main(String[] args) {
String str="ddejidsEFALDFfnef2357 3ed";
int b=0,c=0,d=0;
char a[]=str.toCharArray();
for(int i=0;i<str.length();i++){
if(a[i]>='A'&&a[i]<='Z') {
b++;
}
else if(a[i]>='a'&&a[i]<='z') {
c++;
} else {
d++;
}
}
System.out.println("大写字母个数: "+b+",小写字母个数 "+c+",其他 "+d);
}
}
学习总结:
(1)学习了继承的基本概念
只允许多层继承不能多重继承,一个子类只能继承一个父类。
继承的关键字extends;
子类不能直接访问父类中的私有成员,可以通过setter,getter间接访问;
(2)方法的复写
访问权限大小关系 private<default<public;
子类和父类声明相同的属性,子类中直接访问的时候采用“就近原则’;
方法的重载:方法名称一样,参数的个数、类型和顺序不一样,发生在同一个类中;
方法的覆写:方法名称一样,参数的类型一样,返回值类型一样,访问权限要大于或者等于父类方法的极限,发生在继承类中。
(3)final,super关键字的使用;
使用final声明的类不能有子类。
使用final声明的方法不能被子类所覆写。
使用final声明的变量即成为常量,不可被修改;final声明变量要求全部字母大写。
super语句必须放在子类构造方法首行,与this不可同用。
(4)抽象类的概念
抽象类和抽象方法都要使用abstract关键字声明。
(5)对象的多态性
向上转型:子类--->父类(自动)
向下转型:父类--->子类(强制)
进行向下转型之前,必须首先发生对象向上转型。