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

实验三 String类的应用

实验目的

掌握类String类的使用;
学会使用JDK帮助文档;
实验内容
1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)

统计该字符串中字母s出现的次数。
统计该字符串中子串“is”出现的次数。
统计该字符串中单词“is”出现的次数。
实现该字符串的倒序输出。
实验结果:
1580389-20190927183237315-493981690.png

实验源码:

public class Jiemi {
        public static void main(String[] args) {
            String str=new String("This is a test of java");
            System.out.println(test1(str));
            System.out.println(test2(str));
            System.out.println(test3(str));
            test4(str);                             //主类里面返回所有的值
        }

        public static int test1(String str) {
            int count = 0;
            int i;
            for (i = 0; i < str.length(); i++) {       //遍历字符串
                if ('s' == str.charAt(i)) {        //判断
                    count++;

                }



            }
            return count;

        }
        public static int test2(String str){
            int count2 =0;
            count2=str.indexOf("is");     //查找is的个数并赋值给count2


            return count2;
        }
        public static int test3(String str){
            int count3 =0;
            String a[]=str.split( " ");    //对字符串以空格来进行分割
            for(String e:a) {                    //这里用到foreach用法
                if (e.equals("is")) {            //查找字符串中的is单词
                    count3++;
                }
            }
            return count3;

        }
        public static void test4(String str){
            StringBuffer sb = new StringBuffer(str);
            sb.append(" ");                               //给原有的字符串倒序的情况下还可以自行添加字符串进行倒序,可以省略
            System.out.println(sb.reverse().toString());   //对原有的字符串进行倒序并输出

        }

    }

总结:这个题目老师在上课的时候讲过,然后前面几个基本没啥大问题,就是最后一个倒叙的方法我是百度查到的方法,发现还蛮牛的。所以这个题目总体上还是蛮有挑战的。
2.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。

1580389-20190926191058683-782651720.png
实验结果:
1580389-20190927182526151-233477058.png

实验源码:

import java.net.SocketOption;
import java.util.Scanner;
public class Jiemi {
    public static void JIAMI()
    {
        System.out.println("输入一个字符串");
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        char a[] = str.toCharArray();             //将字符串变成字符数组
        char b[] = new char[100];                 //声明一个数组,同时开辟空间大小为一百的内存
        int j = 0;
        for (int i = a.length - 3; i < a.length; i++) {            //i从数组的第四位开始
            b[j] = a[i];
            j++;
        }                 //将数组a的后三位给数组b
        for (int i = 0; i < a.length - 3; i++) {
            b[j] = a[i];
            j++;                  //将前三位给数组b
        }
        System.out.println("加密后的密码为:");
        System.out.println(b);
    }

    public static void main(String args[]) {
        JIAMI();
        System.out.println("加密成功,感谢使用");
    }
}

总结:这个题目其实一开始流程图没怎么看懂的,可是请教了同学后感觉也还好吧,感觉自己理解能力有点差,然后就是第一个for循环那里我把i的初始条件搞错了,后面改回来。
3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
实验结果:1580389-20190927160450560-1600387909.png

实验源码:

import java.net.SocketOption;
import java.util.Scanner;           //不需要
public class Jiemi {
    public static void main(String args[]) {
         String s="ddejidsEFALDFfnef2357 3ed";
             int xx=0;
             int dx=0;
             int sz=0;
         for(int i=0;i<s.length();i++)
         {
             char n=s.charAt(i); //返回字符串第i个字符
             if(n>='a'&&n<='z')     //根据ASCII值来进行区分
                xx++;
             else if(n>='A'&&n<='Z')
                 dx++;
             else
                 sz++;
         }

        System.out.println("大写字母个数为:"+dx);
        System.out.println("小写字母个数为:"+xx);
        System.out.println("其它字符个数为:"+sz);

    }

}

总结:char n=s.charAt(i);这一步一开始不知道使用,其他的都行。

课程总结

this关键字

1.可以使用this强调本类中的方法
2.可以表示类中的属性
3.this表示当前对象
注意:this必须放在首行,且this不能循环调用。
注:如果一个类中有多个构造方法的话,可以利用this关键字互相调用。

数组

1.数组的定义:
1580389-20190926192415313-2032733044.png

2.数组的声明和分配内存:
1580389-20190926192614731-1817592144.png
第二种方法:
1580389-20190926193654593-1636749505.png
1580389-20190926193659081-846390438.png

注:Java数组的使用,必须经过声明数组和分配内存给数组,其中new则是编译器根据括号里的长度,在堆内存中开辟一块堆内存供该数组使用。
3.数组是引用数据类型,因此数组变量score所保存的并非是数组的实体,而是数组堆内存的参考地址。如图
1580389-20190926193418153-15972874.png
4.在Java中取得数组的长度可以利用“数组名称.length”的形式,如图:

1580389-20190926193857721-1580543786.png

方法

1.方法的定义格式:
1580389-20190926235536568-1774112766.png
注:若果不需要传递参数到方法中,只要将括号写出,不必填入任何内容。如果方法没有返回值,则在返回值类型处要明确地写出void,此时,方法中的return语句可以省略。
2.方法的重载:方法的名称相同,但参数的类型和参数的个数不同。

自我总结

感觉学的知识越来越多了,而且基本上每个知识都要用上,知识的连贯性很强,如果有哪一点断了,做题目真的很伤脑袋。希望今后的学习能更加努力,好好复习学过的知识,并且能把知识点都给弄懂!加油3!

转载于:https://www.cnblogs.com/2001guqiu/p/11593863.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值