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

实验三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);
    }
}

运行截图

1581849-20190923211324268-24618928.png

方法:用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);
    }
}

运行截图

1581849-20190923211434271-826294630.png

方法:同上,查找字符串“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);
    }
}

运行截图

1581849-20190923212132119-784952524.png

方法:使用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]);
        }
    }
}

运行截图

1581849-20190923214101789-1134814264.png

方法:使用toCharArray()方法将字符串变为字符数组,然后for循环倒序输出。

2、请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。
1581849-20190923211014682-464320320.png

源代码

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));
    }
}

运行截图

1581849-20190927155843089-942324554.png

方法:第一步:先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);
    }
}

运行截图

1581849-20190924152450296-1375662010.png

方法:使用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值,所指的是同一个对象

转载于:https://www.cnblogs.com/clayLJX/p/11598751.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值