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


    Java实验报告

    班级 计科二班 学号 20188423 姓名 邹健

    完成时间 2019.9.27

    评分等级

    实验三 String类的应用

    一、实验目的

    (1) 掌握类String类的使用;

    (2) 学会使用JDK帮助文档;

    二、实验内容

    1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)

    ① 统计该字符串中字母s出现的次数。

    ② 统计该字符串中子串“is”出现的次数。

    ③ 统计该字符串中单词“is”出现的次数。

    ④ 实现该字符串的倒序输出。

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

    3.已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。

    (一)已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)

    ① 统计该字符串中字母s出现的次数。

    ② 统计该字符串中子串“is”出现的次数。

    ③ 统计该字符串中单词“is”出现的次数。

    ④ 实现该字符串的倒序输出
    实验代码

    package First;
    
    public class Demo31 {
    
    	public static void main(String[] args) {
    		 int a=0,b=0,l=0;
    	        String str="this is a test of java";
    	        char[] c=str.toCharArray();
    	        for(int i=0;i<c.length;i++){
    	            if(c[i]=='s'){
    	                a++;
    	            }
    	            if(c[i]=='i'&&c[i+1]=='s'){
    	                b++;
    	                
    	            if(c[i-1]==' '&&c[i+2]==' '){
    	                    l++;
    	                }
    	            }
    	        }
    	        System.out.println("s个数:"+a);
    	        System.out.println("is次数:"+b);
    	        System.out.println("单词is次数:"+l);
    	        
    	        System.out.print("倒序输出:");
    	        for(int i=c.length-1;i>=0;i--){
    	            System.out.print(c[i]);
    
    	}
    
    }
    }
    
    
    
    

    实验结果

    (二)请编写一个程序,使用下述算法加密或解密用户输入的英文字串
    实验代码:

    package First;
    import java.util.Scanner;
    public class Demo32 {
    
    	public static void main(String[] args) {		
    		   System.out.println("输入一个字符串");
    	        Scanner sc=new Scanner(System.in);
    	        String  s=sc.nextLine();
    	        char x[]=s.toCharArray();//数据输入并转换为数组
    	        char y[]=new char [x.length];
    	        int i=0,k=0;
    	        if (x.length==1 ||x.length==2 ) {
    	            System.out.println("请输入三位及以上字符");
    	        }
    	        else {
    	        for(i=x.length-3;i<x.length;i++) {
    	            y[k]=x[i];
    	            k++;
    	        }
    	        for(i=0;i<x.length-3;i++) {
    	            y[k]=x[i];
    	            k++;
    	        }//将密码后移
    	        System.out.println("加密的密码为");
    	        System.out.println(y);
    	    }
    	    
    	 }
    	 }
    

    实验结果

    (三).已知字符串“ddejidsEFALDFfnef2357 3ed”。输出字符串里的大写字母数,小写英文字母数,非英文字母数。
    实验代码

    package First;
    
    public class Demo33 {
    
    	public static void main(String[] args) {
    	     		 String str = "ddejidsEFALDEfnef2357 3ed";
    	        char c[] = str.toCharArray();//将字符串转换为数组
    	        int x = 0, y = 0, z = 0;
    	        for(int i = 0;i < c.length;i ++) {
    	            if((int)c[i] >= 65 & (int)c[i] <= 90) 
    	            x++;
    	            if((int)c[i] >= 97 & (int)c[i] <= 122) {
    	                y++;
    	            }
    	            
    	            if((int)c[i] < 65 || (int)c[i] > 90 & (int)c[i] < 97 || (int)c[i] > 122) {
    	                z++;
    	            }
    	        }
    	        System.out.println("大写字母数:"+x);
    	        System.out.println("小写字母数:"+y);
    	        System.out.println("非英文字数:"+z);
    	    }
    
    	
    	}
    
    

    实验结果

    学习总结:
    本周学习了对象的多态性
    1)向上转型:子类对象→父类对象(自动转换)
    2)向下转型:父类对象→子类对象(强制转换)

    final关键字(表示的意思是最终的意思,也可以称为完结器)
    1)使用final声明的类不能有子类
    2)使用final声明的方法不能被子类所覆写
    3)使用final声明的变量级成为常量,常量不可以修改

    继承:在Java类中只允许单一继承,即一个子类只可以继承一个父类,允许进行多层继承,即一个子类可以有一个父类,一个父类还可以有一个父类,且子类将继承父类的非私有属性和方法,但父类与子类只能一对一,即一个父类下面只有一个子类,但是那个子类可以作为父类进行下一次的继承。

    方法的重载与复写:在重载中,方法名称相同,参数的类型或者个数不同,而覆盖都是相同的。覆盖只有发生在父类与子类之间,而重载可以发生在同一类中。
    main方法不能使用this与super
    继承中super 可以调用父类的构造方法(非私有),调用父类的属性及其方法,this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
    this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。

  • 相关阅读:
    JVM 常量池、运行时常量池、字符串常量池
    JVM Direct Memory
    JVM 方法区
    JVM GC Roots
    jvm 堆
    jvm slot复用
    JVM 虚拟机栈
    JVM 程序计数器
    java打印树形目录结构
    java 通过反射获取数组
  • 原文地址:https://www.cnblogs.com/ZJ999999/p/11599640.html
Copyright © 2020-2023  润新知