实验三String 类的应用
一、实验目的
(1)掌 握类String类的使用;
(2)学会使用JDK帮助文档;
二、实验内容
1.已知字符串: "this is a test of java" .按要求执行以下操作: ( 要求源代码、结果截图。)
1.统计该字符串中字母s出现的次数。
源代码
public class Test{
public static void main(String[] args) {
String str = "this is a test of java";
int count = 0,i = 0;
while(str.indexOf("s",i) != -1) {
count++;
i = str.indexOf("s",i)+1;
}
System.out.println(count);
}
}
运行截图
方法:用indexOf从i+1个位置开始查找单个字符“s”,找到计数,i++,没找到就输出-1.
2.统计该字符串中子串“is”出现的次数。
源代码
public class Test{
public static void main(String[] args) {
String str = "this is a test of java";
int count = 0,i = 0;
while(str.indexOf("is",i) != -1) {
count++;
i = str.indexOf("is",i)+1;
}
System.out.println(count);
}
}
运行截图
方法:同上,查找字符串“is”.
3.统计该字符串中单词“is”出现的次数。
源代码
public class Test{
public static void main(String[] args) {
String str = "this is a test of java";
int count = 0;
String[] s = str.split(" ");
for(String e:s) {
if(e.equals("is")) {
count++;
}
}
System.out.println(count);
}
}
运行截图
方法:使用split()方法按空格进行将字符串拆分,然后运用三目运算符,如果找到,就计数。
4.实现该字符串的倒序输出。
源代码
public class Test{
public static void main(String[] args) {
String str = "this is a test of java";
char c[] = str.toCharArray();
for(int i = c.length-1;i>=0;i--) {
System.out.print(c[i]);
}
}
}
运行截图
方法:使用toCharArray()方法将字符串变为字符数组,然后for循环倒序输出。
2、请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
源代码
package hello;
public class Test{
//反向遍历字符串
public static String reChange(String from) {
char[] froms = from.toCharArray();
int length = froms.length;
for(int i = 0;i < length/2;i++) {
char temp = froms[i];
froms[i] = froms[length-1-i];
froms[length-1-i] = temp;
}
return String.copyValueOf(froms);
}
//循环右移index位字符串
public static String rightMoveIndex(String from,int index) {
from = reChange(from);
String first = from.substring(0,index);//先截取0~index个位置的内容
String second = from.substring(index);//从index+1的位置开始截取
first = reChange(first);
second = reChange(second);
from = first + second;
return from;
}
public static void main(String[] args) {
String rightString = "123456";
System.out.println("右移3位字符串结果:"+rightMoveIndex(rightString,3));
}
}
运行截图
方法:第一步:先String一个reChange()方法,设置参数from,使用toCharArray()方法将字符串变为字符数组,运动for循环将字符串倒序保存在字符数组中,再用ValueOf()将反向的字符数组变成字符串,这里使用copyValueOf是因为参数(String from)必须要有返回值。第二步:使用substring()截取字符串,循环右移index位字符串。第三步:输入输出。
3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
源代码
public class Test{
public static void main(String[] args) {
String str = "ddejidsEFALDFfnef2357 3ed";
int count1 = 0,count2 = 0,count3 = 0;
for(int i = 0;i<str.length();i++) {
if(Character.isUpperCase(str.charAt(i))) {
count1 ++;
}
else if(Character.isLowerCase(str.charAt(i))) {
count2++;
}
else {
count3++;
}
}
System.out.println("大写字母个数:"+count1+",小写字母个数:"+count2+",非英文字母个数:"+count3);
}
}
运行截图
方法:使用isUpperCase()、isLowerCase()和charAt()方法。
学习总结
类的继承
格式:
class 父类{ } //定义父类
class 子类 extends 父类{ } //使用extends关键字来实现继承
作用:
通过继承的功能可以直接把父类中的操作直接拿到子类当中使用,而且子类也可以定义自己的属性或方法。
注意:
1、一个子类只能继承一个父类。
2、子类不可以直接访问父类中的私有操作,但是可以通过其他操作(setter或getter)间接访问父类中的私有操作。
子类对象实例化过程
先调用父类中的构造方法。super()表示子类可以直接使用父类中的无参构造。
方法的重载与覆写的区别
方法重载(Overloading):
1.方法名称相同,参数的类型或个数不同
2.方法重载对方法的权限没有要求
3.方法重载发生在一个类中
方法覆写(Overriding):
1.方法名称、参数类型、返回值类型全部相同
2.被覆写的方法不能拥有比父类中的方法更高的权限,也不能拥有private权限
3.方法覆写发生在两个继承类中
Java基本方法命名
1.方法命名为【修饰符1,2,3】 返回值类型 方法名 (形式参数);并且是有return作为结束
2.无返回值的时候 必须要用指定为void
3.实参的数量,数值,及数据类型和次序,必须和形参的一致;
4.java进行方法调用的时候,数据传递是值传递,传递的都是数据的副本
5.基本数据类型传递的是值的copy值
6.引用数据类型传递的是对象引用的copy值,所指的是同一个对象