一、知识点(必做):
EqualsDemo.java
需求:
演示String类创建对象的两种方式,并使用 == 和equals方法进行比较
判断字符串非空
作业目的:了解String的原理,掌握String判断字符串是否为空
package hk.aequals;public class equalsDemo {/*** 需求:* - 演示String类创建对象的两种方式,并使用 == 和equals方法进行比较* - 判断字符串非空* 作业目的:了解String的原理,掌握String判断字符串是否为空** @param args*/public static void main(String[] args) {String s = new String("131");String s1 = "131";System.out.println(s == s1);System.out.println(s.equals(s1));System.out.println(haslength("hello"));}//判断字符串target非空public static boolean haslength(String target) {boolean ret;ret = (target != null) && (!target.trim().equals(""));return ret;}}
StringDemo.java
需求:演示String中的常用方法的调用(9个)
作业目的:熟练操作String类中的常用方法
package hk.aequals;public class StringDemo {/*** 需求:演示String中的常用方法的调用(9个)* 作业目的:熟练操作String类中的常用方法** int length() 返回此字符串的字符个数* char charAt(int index) 返回指定索引位置的字符* int indexOf(String str) 返回指定字符串在此字符串中从左向右第一次出现处的索引位置* boolean equals(Object anObject) 比较内容是否相同* boolean equalsIgnoreCase(String anotherString) 忽略虑大小写,比较内容是否相同* String toUpperCase() 把当前字符串转换为大写* String toLowerCase() 把当前字符串转换为小写* String substring(int beginIndex):从指定位置开始截取字符串* String substring(int beginIndex, int endIndex):截取指定区域的字符串* boolean endWith(String suffix)* boolean startWith(String prefix)* replace(char oldChar, char newChar)*/public static void main(String[] args) {String str = new String("heybaby");System.out.println(str.length());char c = str.charAt(2);System.out.println(c);int index = str.indexOf(1);System.out.println(index);System.out.println(str.equals("HELLO"));System.out.println(str.equalsIgnoreCase("hello"));System.out.println(str.toUpperCase());System.out.println(str.toLowerCase());String s = str.substring(2);System.out.println(s);String s1 = str.substring(1, 4);System.out.println(s1);System.out.println(str.startsWith("h"));System.out.println(str.endsWith("e"));System.out.println(str.replace('h','H'));System.out.println(str.replace("heybaby","HEY"));}}/*总结:int length() 返回此字符串的字符个数char charAt(int index) 返回指定索引位置的字符int indexOf(String str) 返回指定字符串在此字符串中从左向右第一次出现处的索引位置boolean equals(Object anObject) 比较内容是否相同boolean equalsIgnoreCase(String anotherString) 忽略虑大小写,比较内容是否相同String toUpperCase() 把当前字符串转换为大写String toLowerCase() 把当前字符串转换为小写String substring(int beginIndex):从指定位置开始截取字符串String substring(int beginIndex, int endIndex):截取指定区域的字符串boolean endWith(String suffix)boolean startWith(String prefix)replace(char oldChar, char newChar)
MathDemo.java
需求:使用Math类常用方法,例如:获取随机数方法
作业目的:了解Math是一个操作什么的类,能够查API调用方法即可
package hk.aequals;public class MathDemo {/*** 需求:使用Math类常用方法,例如:获取随机数方法* 作业目的:了解Math是一个操作什么的类,能够查API调用方法即可* @param args*/public static void main(String[] args) {double random = Math.random();System.out.println(random);}}
RandomDemo.java
需求:使用随机数Random类,通过Random类获取伪随机数
作业目的:了解Random的作用,能够查API调用方法即可
package hk.aequals;import java.util.Random;public class RandomDemo {/*** 需求:使用随机数Random类,通过Random类获取伪随机数* 作业目的:了解Random的作用,能够查API调用方法即可* @param args*/public static void main(String[] args) {Random random = new Random();int i = random.nextInt(100);System.out.println(i);}}
UUIDDemo.java
需求:
使用随机数UUID类,通过UUID类获取随机数
通过UUID类,获取验证码
作业目的:掌握UUID获取随机数
SimpleDateFormat.java(重点)
需求:使用日期Date类常用方法
作业目的:掌握Date对象的创建和常用方法的调用
SimpleDateFormatDemo.java
需求:通过SimpleDateFormat类进行格式化和解析操作
作业目的:掌握格式化和解析操作
二、综合练习:
练习一
利用接口的知识,写个计算器,能完成两个数的加减乘除运算
1)定义一个接口IComputable含有一个方法int compute(int n,int m);2)定义加(Add)、减(Subtract)、乘(Multiply)、除(Divide)四个类,分别实现此接口,并分别覆盖compute方法完成加减乘除运算3)设计一个类UseCompute,含有方法:public void useCom(IComputable com, int num1,int num2)
此方法要求能够:1.用传递过来的对象调用compute 方法完成运算
2.输出运算的结果
4)设计一个测试类,调用UseCompute中的方法useCom来完成加减乘除运算
public class UseCompute {public static void useCorn(IComputable com, int num1, int num2) {System.out.println(com.compute(num1, num2));}}public static void main(String[] args) {IComputable add = new Add();IComputable divide = new Divide ();IComputable multiply = new Multiply();IComputable subtract = new Subtract();int num1 =1;int num2 =2;UseCompute.useCorn(add,num1,num2);UseCompute.useCorn(divide,num1,num2);UseCompute.useCorn(multiply,num1,num2);UseCompute.useCorn(subtract,num1,num2);}public interface IComputable {int compute(int n,int m);}public class Add implements IComputable{@Overridepublic int compute(int n, int m) {return m+n;}}public class Subtract implements IComputable{@Overridepublic int compute(int n, int m) {return m-n;}}public class Multiply implements IComputable {@Overridepublic int compute(int n, int m) {return m*n;}}public class Divide implements IComputable {@Overridepublic int compute(int n, int m) {if (m!=0){return n/m;}else{System.out.print("除数不能为0,计算错误"+" m= ");return m;}}}
练习二
现有两个打印规范如下:
字母小写打印(ILowercaseLetter),方法:void printLowercaseLetter()
字母大写打印(IUppercaseLetter),方法:printUppercaseLetter()
1)现有打印类Print实现ILowercaseLetter和IUppercaseLetter规范。
2)要求覆盖printUppercaseLetter()方法实现为:将成员变量str转换并打印为全大写英文字母的功能,覆盖printLowercaseLetter()方法实现为:将成员变量str转换并打印为全小写英文字母的功能。
【提示:(码表65为A,码表97为a)】
请用多态的知识创建对象,并调用大小写打印方法。
public class Print implements IUppercaseLetter,ILowercaseLetter{/*** 现有两个打印规范如下:* 字母小写打印(ILowercaseLetter),方法:void printLowercaseLetter()* 字母大写打印(IUppercaseLetter),方法:printUppercaseLetter()* 1)现有打印类Print实现ILowercaseLetter和IUppercaseLetter规范。* 2)要求覆盖printUppercaseLetter()方法实现为:* 将成员变量str转换并打印为全大写英文字母的功能,* 覆盖printLowercaseLetter()方法实现为:* 将成员变量str转换并打印为全小写英文字母的功能。*【提示:(码表65为A,码表97为a)】* 请用多态的知识创建对象,并调用大小写打印方法。*/static String str="HAfu123";@Overridepublic void printLowercaseLetter() {str.toLowerCase();}@Overridepublic void printUppercaseLetter() {str.toUpperCase();}public static void main(String[] args) {String s = str.toLowerCase();String s2 = str.toUpperCase();System.out.println(s);System.out.println(s2);}}public interface IUppercaseLetter {public void printUppercaseLetter();}public interface ILowercaseLetter {public void printLowercaseLetter();}
练习三
设计一个方法 getCpCode(double orderFee,String province) 并且在main方法中调用,打印出getCpCode(80,”北京市”)的返回结果.
根据订单金额 orderFee 和 收货人省份 province来判断使用哪家快递公司,具体需求如下
如果订单金额在128以上并且是广东省的收货地址,直接使用顺丰包邮, 返回 字符串 “SF”,
如果订单金额在58以上,128以下并且是北京市的收货地址,直接使用EMS包邮,返回字符串”EMS”,
其他情况默认为中通快递,返回字符串”ZTO”
public static String getCpCode(double orderFee,String province){if (orderFee>=128&&province=="广东省") {return "SF";}else if (orderFee>=58&&orderFee<128&&province=="北京市") {return "EMS";}else { return "ZTO";}}public static void main(String[] args) {String cpCode = CpCode.getCpCode(80,"北京市");System.out.println(cpCode);}
FiltrationDemo.java
1.实现功能对指定的敏感词汇进行过滤替换,把敏感词过滤成*号输出
如原句:“窝草,昨晚又停电了!”
过滤后为:“**,昨晚又停电了!”
分析:
1,可以用数组事先存储多个指定的敏感单词;
2,针对所有的敏感字都需要判断及过滤;
3,敏感字替换;replace(), replaceAll()
4,替换的*字符和原字符长度相同;
String[] words = {"握草","SB","扑街"};String text = "握草,昨晚又停电了!;替换完成后String text = "**,昨晚又停电了!;//step1:吧常用的敏感性慈湖存入数组中String[] words ={"握草","SB","扑街"};String str = "握草,昨晚又停电了!;//step2:遍历数组,获取敏感性词汇,在str中查找这个敏感词汇是否存在for(String word:words){if(str.indexOf(word)>=0){//step3:如果存在,根据敏感词汇的长度准备 星的个数StringBuilder stars =new StringBuilder(words.length());for(int i =0;i<words.length();i++){stars.append("*");}//step4:然后替换}String starsStr =stars.toString();String newStr = str.replace(word.starsStr);}
