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

  • 相关阅读:
    第4月第1天 makefile automake
    第3月30天 UIImage imageWithContentsOfFile卡顿 Can't add self as subview MPMoviePlayerControlle rcrash
    第3月第27天 uitableviewcell复用
    learning uboot fstype command
    learning uboot part command
    linux command dialog
    linux command curl and sha256sum implement download verification package
    learning shell script prompt to run with superuser privileges (4)
    learning shell get script absolute path (3)
    learning shell args handing key=value example (2)
  • 原文地址:https://www.cnblogs.com/LeeMayZ/p/11590666.html
Copyright © 2011-2022 走看看