浮点数做运算,需要注意的问题
1.使用BigDecimal类
2.(最简单的方式)BigDecimal类中构造方法传入的值最好转换为String类型
float f1 = 0.06f;
float f2 = 0.01f;
BigDecimal bd1 = new BigDecimal(String.valueOf(0.06));
BigDecimal bd2 = new BigDecimal(String.valueOf(0.01));
//加法
BigDecimal addBD = bd1.add(bd2);
double b = addBD.doubleValue();
//减法
double b2 = bd1.subtract(bd2).doubleValue();
//乘法
double b3 = bd1.multiply(bd2).doubleValue();
//除法
double b4 = bd1.divide(bd2).doubleValue();
System.out.println(b);
String 代表了一个不可变的字符串,StringBuffer和StringBuilder则代表一个内容可变的字符串
StringBuffer和StringBuilder很多方面是相同的,不同的是StringBuffer是考虑线程安全的而StringBuilder不是,
所以StringBuilder性能略高,在不考虑线程安全的情况下,如果要创建一个内容可变的字符串对象,应该优先考虑用StringBuilder
例题:判断邮箱格式是否正确:合法的邮箱名中至少要包含"@", 并且"@"是在"."之前
int index2 = email.indexOf('@');
int index3 = email.indexOf('.');
if (index2 != -1 && index3 > index2) {
System.out.println("邮箱格式正确");
} else {
System.out.println("邮箱格式无效");
}
日期类
Date 类表示特定的瞬间,精确到毫秒。
DateFormat 与 SimpleDateFormat 类,DateFormat是一个抽象类。
Calendar 与 GregorianCalendar 类,Calendar 是一个抽象类。
将Calendar转换为Date类型:
Date d = c.getTime();
String str = sdf.format(d);
System.out.println(str);
Math类是一个数学类,其中所有方法都是静态,Random类是最为强大的一个随机数生成器
正则表达式java中提供了Pattern和Matcher类使用正则表达式