一、知识点(必做):

EqualsDemo.java

需求:

  • 演示String类创建对象的两种方式,并使用 == 和equals方法进行比较

  • 判断字符串非空

作业目的:了解String的原理,掌握String判断字符串是否为空

  1. package hk.aequals;
  2. public class equalsDemo {
  3. /**
  4. * 需求:
  5. * - 演示String类创建对象的两种方式,并使用 == 和equals方法进行比较
  6. * - 判断字符串非空
  7. * 作业目的:了解String的原理,掌握String判断字符串是否为空
  8. *
  9. * @param args
  10. */
  11. public static void main(String[] args) {
  12. String s = new String("131");
  13. String s1 = "131";
  14. System.out.println(s == s1);
  15. System.out.println(s.equals(s1));
  16. System.out.println(haslength("hello"));
  17. }
  18. //判断字符串target非空
  19. public static boolean haslength(String target) {
  20. boolean ret;
  21. ret = (target != null) && (!target.trim().equals(""));
  22. return ret;
  23. }
  24. }

StringDemo.java

需求:演示String中的常用方法的调用(9个)

作业目的:熟练操作String类中的常用方法

  1. package hk.aequals;
  2. public class StringDemo {
  3. /**
  4. * 需求:演示String中的常用方法的调用(9个)
  5. * 作业目的:熟练操作String类中的常用方法
  6. *
  7. * int length() 返回此字符串的字符个数
  8. * char charAt(int index) 返回指定索引位置的字符
  9. * int indexOf(String str) 返回指定字符串在此字符串中从左向右第一次出现处的索引位置
  10. * boolean equals(Object anObject) 比较内容是否相同
  11. * boolean equalsIgnoreCase(String anotherString) 忽略虑大小写,比较内容是否相同
  12. * String toUpperCase() 把当前字符串转换为大写
  13. * String toLowerCase() 把当前字符串转换为小写
  14. * String substring(int beginIndex):从指定位置开始截取字符串
  15. * String substring(int beginIndex, int endIndex):截取指定区域的字符串
  16. * boolean endWith(String suffix)
  17. * boolean startWith(String prefix)
  18. * replace(char oldChar, char newChar)
  19. */
  20. public static void main(String[] args) {
  21. String str = new String("heybaby");
  22. System.out.println(str.length());
  23. char c = str.charAt(2);
  24. System.out.println(c);
  25. int index = str.indexOf(1);
  26. System.out.println(index);
  27. System.out.println(str.equals("HELLO"));
  28. System.out.println(str.equalsIgnoreCase("hello"));
  29. System.out.println(str.toUpperCase());
  30. System.out.println(str.toLowerCase());
  31. String s = str.substring(2);
  32. System.out.println(s);
  33. String s1 = str.substring(1, 4);
  34. System.out.println(s1);
  35. System.out.println(str.startsWith("h"));
  36. System.out.println(str.endsWith("e"));
  37. System.out.println(str.replace('h','H'));
  38. System.out.println(str.replace("heybaby","HEY"));
  39. }
  40. }
  41. /*总结:
  42. int length() 返回此字符串的字符个数
  43. char charAt(int index) 返回指定索引位置的字符
  44. int indexOf(String str) 返回指定字符串在此字符串中从左向右第一次出现处的索引位置
  45. boolean equals(Object anObject) 比较内容是否相同
  46. boolean equalsIgnoreCase(String anotherString) 忽略虑大小写,比较内容是否相同
  47. String toUpperCase() 把当前字符串转换为大写
  48. String toLowerCase() 把当前字符串转换为小写
  49. String substring(int beginIndex):从指定位置开始截取字符串
  50. String substring(int beginIndex, int endIndex):截取指定区域的字符串
  51. boolean endWith(String suffix)
  52. boolean startWith(String prefix)
  53. replace(char oldChar, char newChar)

MathDemo.java

需求:使用Math类常用方法,例如:获取随机数方法

作业目的:了解Math是一个操作什么的类,能够查API调用方法即可

  1. package hk.aequals;
  2. public class MathDemo {
  3. /**
  4. * 需求:使用Math类常用方法,例如:获取随机数方法
  5. * 作业目的:了解Math是一个操作什么的类,能够查API调用方法即可
  6. * @param args
  7. */
  8. public static void main(String[] args) {
  9. double random = Math.random();
  10. System.out.println(random);
  11. }
  12. }

RandomDemo.java

需求:使用随机数Random类,通过Random类获取伪随机数

作业目的:了解Random的作用,能够查API调用方法即可

  1. package hk.aequals;
  2. import java.util.Random;
  3. public class RandomDemo {
  4. /**
  5. * 需求:使用随机数Random类,通过Random类获取伪随机数
  6. * 作业目的:了解Random的作用,能够查API调用方法即可
  7. * @param args
  8. */
  9. public static void main(String[] args) {
  10. Random random = new Random();
  11. int i = random.nextInt(100);
  12. System.out.println(i);
  13. }
  14. }

UUIDDemo.java

需求:

  • 使用随机数UUID类,通过UUID类获取随机数

  • 通过UUID类,获取验证码

作业目的:掌握UUID获取随机数

SimpleDateFormat.java(重点)

需求:使用日期Date类常用方法

作业目的:掌握Date对象的创建和常用方法的调用

SimpleDateFormatDemo.java

需求:通过SimpleDateFormat类进行格式化和解析操作

作业目的:掌握格式化和解析操作

二、综合练习:

练习一

利用接口的知识,写个计算器,能完成两个数的加减乘除运算

  1. 1)定义一个接口IComputable含有一个方法int compute(int n,int m);
  2. 2)定义加(Add)、减(Subtract)、乘(Multiply)、除(Divide)四个类,分别实现此接口,并分别覆盖compute方法完成加减乘除运算
  3. 3)设计一个类UseCompute,含有方法:public void useCom(IComputable com, int num1,int num2)

此方法要求能够:1.用传递过来的对象调用compute 方法完成运算

2.输出运算的结果

  1. 4)设计一个测试类,调用UseCompute中的方法useCom来完成加减乘除运算
  1. public class UseCompute {
  2. public static void useCorn(IComputable com, int num1, int num2) {
  3. System.out.println(com.compute(num1, num2));
  4. }
  5. }
  6. public static void main(String[] args) {
  7. IComputable add = new Add();
  8. IComputable divide = new Divide ();
  9. IComputable multiply = new Multiply();
  10. IComputable subtract = new Subtract();
  11. int num1 =1;
  12. int num2 =2;
  13. UseCompute.useCorn(add,num1,num2);
  14. UseCompute.useCorn(divide,num1,num2);
  15. UseCompute.useCorn(multiply,num1,num2);
  16. UseCompute.useCorn(subtract,num1,num2);
  17. }
  18. public interface IComputable {
  19. int compute(int n,int m);
  20. }
  21. public class Add implements IComputable{
  22. @Override
  23. public int compute(int n, int m) {
  24. return m+n;
  25. }
  26. }
  27. public class Subtract implements IComputable{
  28. @Override
  29. public int compute(int n, int m) {
  30. return m-n;
  31. }
  32. }
  33. public class Multiply implements IComputable {
  34. @Override
  35. public int compute(int n, int m) {
  36. return m*n;
  37. }
  38. }
  39. public class Divide implements IComputable {
  40. @Override
  41. public int compute(int n, int m) {
  42. if (m!=0){
  43. return n/m;
  44. }else{
  45. System.out.print("除数不能为0,计算错误"+" m= ");
  46. return m;
  47. }
  48. }
  49. }

练习二

现有两个打印规范如下:

字母小写打印(ILowercaseLetter),方法:void printLowercaseLetter()

字母大写打印(IUppercaseLetter),方法:printUppercaseLetter()

1)现有打印类Print实现ILowercaseLetter和IUppercaseLetter规范。

2)要求覆盖printUppercaseLetter()方法实现为:将成员变量str转换并打印为全大写英文字母的功能,覆盖printLowercaseLetter()方法实现为:将成员变量str转换并打印为全小写英文字母的功能。

【提示:(码表65为A,码表97为a)】

请用多态的知识创建对象,并调用大小写打印方法。

  1. public class Print implements IUppercaseLetter,ILowercaseLetter{
  2. /**
  3. * 现有两个打印规范如下:
  4. * 字母小写打印(ILowercaseLetter),方法:void printLowercaseLetter()
  5. * 字母大写打印(IUppercaseLetter),方法:printUppercaseLetter()
  6. * 1)现有打印类Print实现ILowercaseLetter和IUppercaseLetter规范。
  7. * 2)要求覆盖printUppercaseLetter()方法实现为:
  8. * 将成员变量str转换并打印为全大写英文字母的功能,
  9. * 覆盖printLowercaseLetter()方法实现为:
  10. * 将成员变量str转换并打印为全小写英文字母的功能。
  11. *【提示:(码表65为A,码表97为a)】
  12. * 请用多态的知识创建对象,并调用大小写打印方法。
  13. */
  14. static String str="HAfu123";
  15. @Override
  16. public void printLowercaseLetter() {
  17. str.toLowerCase();
  18. }
  19. @Override
  20. public void printUppercaseLetter() {
  21. str.toUpperCase();
  22. }
  23. public static void main(String[] args) {
  24. String s = str.toLowerCase();
  25. String s2 = str.toUpperCase();
  26. System.out.println(s);
  27. System.out.println(s2);
  28. }
  29. }
  30. public interface IUppercaseLetter {
  31. public void printUppercaseLetter();
  32. }
  33. public interface ILowercaseLetter {
  34. public void printLowercaseLetter();
  35. }

练习三

设计一个方法 getCpCode(double orderFee,String province) 并且在main方法中调用,打印出getCpCode(80,”北京市”)的返回结果.

根据订单金额 orderFee 和 收货人省份 province来判断使用哪家快递公司,具体需求如下

如果订单金额在128以上并且是广东省的收货地址,直接使用顺丰包邮, 返回 字符串 “SF”,

如果订单金额在58以上,128以下并且是北京市的收货地址,直接使用EMS包邮,返回字符串”EMS”,

其他情况默认为中通快递,返回字符串”ZTO”

  1. public static String getCpCode(double orderFee,String province){
  2. if (orderFee>=128&&province=="广东省") {
  3. return "SF";
  4. }else if (orderFee>=58&&orderFee<128&&province=="北京市") {
  5. return "EMS";
  6. }else { return "ZTO";
  7. }
  8. }
  9. public static void main(String[] args) {
  10. String cpCode = CpCode.getCpCode(80,"北京市");
  11. System.out.println(cpCode);
  12. }

FiltrationDemo.java

1.实现功能对指定的敏感词汇进行过滤替换,把敏感词过滤成*号输出

如原句:“窝草,昨晚又停电了!”

过滤后为:“**,昨晚又停电了!”

分析:

1,可以用数组事先存储多个指定的敏感单词;

2,针对所有的敏感字都需要判断及过滤;

3,敏感字替换;replace(), replaceAll()

4,替换的*字符和原字符长度相同;

  1. String[] words = {"握草","SB","扑街"};
  2. String text = "握草,昨晚又停电了!;
  3. 替换完成后
  4. String text = "**,昨晚又停电了!;
  5. //step1:吧常用的敏感性慈湖存入数组中
  6. String[] words ={"握草","SB","扑街"};
  7. String str = "握草,昨晚又停电了!;
  8. //step2:遍历数组,获取敏感性词汇,在str中查找这个敏感词汇是否存在
  9. for(String word:words){
  10. if(str.indexOf(word)>=0){
  11. //step3:如果存在,根据敏感词汇的长度准备 星的个数
  12. StringBuilder stars =new StringBuilder(words.length());
  13. for(int i =0;i<words.length();i++){
  14. stars.append("*");
  15. }
  16. //step4:然后替换
  17. }
  18. String starsStr =stars.toString();
  19. String newStr = str.replace(word.starsStr);
  20. }