zoukankan      html  css  js  c++  java
  • 第五周课程总结&试验报告(三)

    试验报告

    1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码、结果截图。)
    ·统计该字符串中字母s出现的次数。
    ·统计该字符串中子串“is”出现的次数。
    ·统计该字符串中单词“is”出现的次数。
    ·实现该字符串的倒序输出。

    代码

    package text3;
    
    //字符串中字母s出现的次数
    public class Characters {
    	public static void main(String[] args) {
    		String str = "this is a test of java";
    		int count=0;
    		int i;
    		char[] ch = str.toCharArray();
    		for(i=0;i<ch.length;i++)
    		{
    			if(ch[i]=='s')
    				count++;
    		}
    		System.out.println("s个数是:"+count);
    	}
    }
    
    //字符串中子串“is”出现的次数
    public class Characteriscount {
    	public static void main(String[] args) {
    		String str = "this is a test of java";
    		int count=0;
    		int i;
    		int j;
    		String ch="is";
    		j=0;
    		
    		for(i=0;i<str.length();i++)
    		{
    			if(str.indexOf(ch,j)==-1)
    				break;
    			
    			else
    			{
    				count++;
    				j=str.indexOf(ch,j)+1;
    			}
    		}
    		
    		System.out.println("is个数是:"+count);
    	}
    }
    
    //字符串中单词“is”出现的次数
    public class Characterisword {
    	public static void main(String[] args) {
    		String str = "this is a test of java";
    		int count=0;
    		int i;
    		
    		String[] ch= str.split(" ");
    		
    		for(i=0;i<ch.length;i++)
    		{
    			if(ch[i].equals("is"))
    				count++;
    			
    		}
    		
    		System.out.println("单词is个数是:"+count);
    	}
    }
    
    //字符串的倒序输出
       //单词倒序输出
    public class Characterinvertprint {
    	public static void main(String[] args) {
    		String str = "this is a test of java";
    	
    		int i;
    		
    		String[] ch = str.split(" ");
    		
    		for(i=ch.length-1;i>=0;i--)
    		{
    			System.out.print(ch[i]+" ");
    		}
    		
    	}
    }
    
    //字母倒序输出
    public class Characterprint {
    	public static void main(String[] args) {
    		String str = "this is a test of java";
    	
    		int i;
    		
    		char[] ch = str.toCharArray();
    		
    		for(i=ch.length-1;i>=0;i--)
    		{
    			System.out.print(ch[i]);
    		}
    		
    	}
    }
    
    

    遇到的问题

    1.统计该字符串中字母s出现的次数 时输出结果错误;

    解决办法:不使用substring方法,改为使用indexOf方法查找到指定字符串就会返回字符串的最后的位置。
    2.实现该字符串的倒序输出 时报错,字符串数组的最后字符串下标是长度减一;

    解决办法:把i=ch.lenght;改为i=lenght-1。

    运行结果

    1.1

    1.2

    1.3

    1.4

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

    代码

    package Encrypt;
    
    
    import java.util.*;
    public class Encryptstr {
    	private String str;
    	
    	public Encryptstr() {
    		
    	}
    
    	public String getStr() {
    		return str;
    	}
    
    	public void setStr(String str) {
    		this.str = str;
    	}
    	
    	//输入字符串
    	public void Inputstr() {
    		Scanner pw = new Scanner(System.in);
    		String str = pw.next();
    		
    		this.str = str;
    		pw.close(); 
    	}
    	
    	//加密过程
    	public String encrystr() {
    		char[] ch = str.toCharArray();
    		int i;
    		for(i=0;i<str.length();i++)  //后移3位
    		{
    			ch[i]=(char)(ch[i]+3);
    			
    		}
    		
    		//重新连成字符串
    		String str = new String(ch);
    		this.str = str;
    		return str;
    	}
    	
    	//解密
    	public String deciphering() {
    		char[] ch = str.toCharArray();
    		int i;
    		for(i=0;i<str.length();i++)  //后移3位
    		{
    			ch[i]=(char)(ch[i]-3);
    			
    		}
    		
    		//重新连成字符串
    		String str = new String(ch);
    		this.str = str;
    		return str;
    	}
    	
    	//测试
    		public static void main(String args[]) {
    			Encryptstr str1 = new Encryptstr();
    			
    			System.out.println("请输入需加(解)密内容:");
    			str1.Inputstr();
    			
    			
    			System.out.println("加密后:"+str1.encrystr());
    			
    			System.out.println("解密后:"+str1.deciphering());
    		}
    }	
    
    

    遇到的问题

    无。

    运行结果

    更正

    代码

    package Encrypt;
    
    
    import java.util.*;
    public class Encryptstr {
    	private String str;
    	
    	public Encryptstr() {
    		
    	}
    
    	public String getStr() {
    		return str;
    	}
    
    	public void setStr(String str) {
    		this.str = str;
    	}
    	
    	//输入字符串
    	public void Inputstr() {
    		Scanner pw = new Scanner(System.in);
    		String str = pw.next();
    		
    		this.str = str;
    		
    		pw.close(); 
    	}
    	
    	//加密过程
    	public String encrystr() {
    		char[] ch = str.toCharArray();
    
    		char[] st = null;
    		st = new char[str.length()];
    		int i;
    		
    		for(i=0;i<str.length();i++)  //后移3位
    		{
    			if(i>str.length()/2)
    			{
    				st[i+3-str.length()]=ch[i];
    			}
    			else
    				st[i+3]=ch[i];
    		}
    		
    		//重新连成字符串
    		String str = new String(st);
    		this.str = str;
    		return str;
    	}
    	
    	//解密
    	public String deciphering() {
    		char[] ch = str.toCharArray();
    		char[] st = null;
    		st = new char[str.length()];
    		
    		int i;
    		for(i=0;i<str.length();i++)  //后移3位
    		{
    			if(i<3)
    			{
    				st[i-3+str.length()]=ch[i];
    			}
    			else
    				st[i-3]=ch[i];
    			
    		}
    		
    		//重新连成字符串
    		String str = new String(st);
    		this.str = str;
    		return str;
    	}
    	
    	public static void main(String args[]) {
    		Encryptstr str1 = new Encryptstr();
    		
    		System.out.println("请输入需加(解)密内容:");
    		str1.Inputstr();
    		
    		
    		//System.out.println("加密后:"+str1.encrystr());
    		
    		System.out.println("解密后:"+str1.deciphering());
    	}
    }	
    
    

    运行结果

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

    代码

    package Count;
    
    public class Countchar {
    	public static void main(String args[]) {
    		String str = "ddejidsEFALDfnef2357 3ed";
    		
    		int i;
    		int countcapitals=0;   //大写英文字母数
    		int countsmall=0;     //小写英文字母数
    		int countnoletter=0;    //非英文字母数
    		
    		for(i=0;i<str.length();i++)
    		{
    			if(str.charAt(i)>='A'&& str.charAt(i)<='Z')
    				countcapitals++;
    			
    			else if(str.charAt(i)>='a'&& str.charAt(i)<='z')
    					countsmall++;
    			
    			else
    				countnoletter++;
    		}
    		
    		System.out.println("大写英文字母数:"+countcapitals);
    		System.out.println("小写英文字母数:"+countsmall);
    		System.out.println("非英文字母数:"+countnoletter);
    	}
    }
    

    遇到的问题

    无。

    运行结果

    课程总结

    本周学习了

    继承

    概念
    类的继承方式:class 父类{}
    class 子类 extends 父类{}
    继承的实现:通过继承的功能可以直接把父类中的操作直接拿到子类中使用,子类也可以定义自己的属性或方法。
    注意:只可多层继承,不可多重继承;子类不能直接访问父类中的私有成员,可以调用父类中的非私有方法,但不能直接调用父类中的私有成员。
    方法覆写:指子类定义了与父类中同名的方法。
    super()可以从子类中调用父类中的构造方法、普通方法、属性。
    super调用父类的构造方法:语句必须放在子类构造方法的首行,父类没有构造方法时,会在父类中自动生成一个空的构造方法,然后通过在子类中用super();调用,若父类中构造了非空的构造方法,则不会再自动生成空构造方法,此时子类中调用父类的构造方法super();括号中要带参数。
    this与super的区别

    抽象类

    定义及使用:
    (1)包含一个抽象方法的类必须是抽象类;
    (2)抽象类和抽象方法都要用abstract声明;
    (3)抽象方法只需声明而不需实现;
    (4)抽象类必须被子类继承,如果子类不是抽象类,必须覆写抽象类的全部抽象方法。

    final关键字

    声明时注意:
    (1)final声明的类不能有子类;
    (2)final声明的方法不能被子类覆写;
    (3)final声明的变量会成为常量。

    对象的多态性

    (1)子类对象->父类对象 (向上转型)
    (2)父类对象->子类对象 (向下转型)
    注:向上转型是自动的,向下转型是强制的,必须明确指明要转型的子类的类型,(为保证转型成功)向下转型之前必须先有对象向上转型。
    格式:
    向上 父类 父类对象 = 子类实例;
    向下 子类 子类对象 = (子类)父类实例;

  • 相关阅读:
    xml方式将dataset导出excel
    linux安装Navicat,界面出现乱码解决方法 (转发)
    ERROR 29 (HY000): File '/var/lib/mysql/txtdata/yz2014_1.txt' not found (Errcode: 13 "Permission denied")
    centos7中yum安装ntfs3g(转载)
    MariaDB中my.cnf文件误删除
    Mysql操作命令出现错误时消除/mysql数据导入txt
    Linux查找yum安装软件在系统中路径
    Centos7安装MariaDB安装数据库yum安装数据库远程登录数据库存储路径更改
    Zookeeper常用命令
    Hbase学习连接-数据导入
  • 原文地址:https://www.cnblogs.com/LeeMayZ/p/11590666.html
Copyright © 2011-2022 走看看