一、知识点(必做):
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{
@Override
public int compute(int n, int m) {
return m+n;
}
}
public class Subtract implements IComputable{
@Override
public int compute(int n, int m) {
return m-n;
}
}
public class Multiply implements IComputable {
@Override
public int compute(int n, int m) {
return m*n;
}
}
public class Divide implements IComputable {
@Override
public 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";
@Override
public void printLowercaseLetter() {
str.toLowerCase();
}
@Override
public 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);
}