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


    实验三 String类的应用

    实验目的

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

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

    实验源码:

    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.请编写一个程序,使用下述算法加密或解密用户输入的英文字串。要求源代码、结果截图。


    实验结果:

    实验源码:

    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”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
    实验结果:

    实验源码:

    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.数组的定义:

    2.数组的声明和分配内存:

    第二种方法:

    注:Java数组的使用,必须经过声明数组和分配内存给数组,其中new则是编译器根据括号里的长度,在堆内存中开辟一块堆内存供该数组使用。
    3.数组是引用数据类型,因此数组变量score所保存的并非是数组的实体,而是数组堆内存的参考地址。如图

    4.在Java中取得数组的长度可以利用“数组名称.length”的形式,如图:

    方法

    1.方法的定义格式:

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

    自我总结

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

  • 相关阅读:
    linux 实现一列数据的求和、累积求和、及1/2求和
    linux系统中如何删除某些文件或者某一类以外的所有文件
    linux系统中查看系统内核、发行版本信息
    linux系统中如何将当前目录下的文件从大到小排序和从小到大排序
    c语言中float关键字和double关键字的区别
    linux 系统如何给软件设置环境变量
    使用detectRUNS包进行ROH检测,计算近交系数实践
    诸城模拟赛 dvd的逆序对
    codevs1316 文化之旅
    codevs2800 送外卖
  • 原文地址:https://www.cnblogs.com/2001guqiu/p/11593863.html
Copyright © 2020-2023  润新知