第五周课程总结&试验报告(三)

实验三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值,所指的是同一个对象

posted @ 2019-09-27 16:29  小佳同学  阅读(179)  评论(0编辑  收藏  举报