目录
Date类/Calendar类/ SimpleDateFormat类
java.lang.Math
Math类
代码
package com.ffyc.javaapi.mathdemo;
public class MathDemo {
public static void main(String[] args) {
System.out.println(Math.PI);//3.141592653589793
System.out.println(Math.abs(-1));//1
System.out.println(Math.sqrt(9));//3.0
System.out.println(Math.pow(2, 3));//8.0
System.out.println(Math.floor(9.9));//9.0
System.out.println(Math.ceil(9.1));//10.0
System.out.println(Math.round(9.4));//9
System.out.println(Math.round(9.6));//10
//返回一个 大于等于0小于1 的随机数
System.out.println(Math.random());//0.618879258589192
}
}
运行
Random类
代码
package com.ffyc.javaapi.mathdemo;
import java.util.Arrays;
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
Random random = new Random();
//在取值范围内返回随机返回一个结果
System.out.println(random.nextBoolean());
System.out.println(random.nextDouble());
System.out.println(random.nextFloat());
System.out.println(random.nextInt());
//在指定范围内随机返回一个随机数,大于等于0 小于给定的值
System.out.println(random.nextInt(10));
byte[] bytes = new byte[6];
random.nextBytes(bytes);
System.out.println(Arrays.toString(bytes));
}
}
运行
Date类/Calendar类/ SimpleDateFormat类
Date类
import java.util.Date;
new Date();对象 得到一个系统的当前时间
getYear();上面有一个删除线,表示此方法是弃用的方法,不建议使用,有新的方法代替,但是也是可以调用的
代码
package com.ffyc.javaapi.datedemo;
import java.util.Date;
public class DateDemo{
public static void main(String[] args) {
Date date = new Date();
System.out.println(date.getYear()+1900);
//月份是从零开始
System.out.println(date.getMonth()+1);//0 1 2 3 ....
//今天是第几天
System.out.println(date.getDate());
//星期从星期天开始,星期天是0,星期六是6
System.out.println(date.getDay());
//获取当前小时
System.out.println(date.getHours());
//获取当前分钟
System.out.println(date.getMinutes());
//获取当前秒钟
System.out.println(date.getSeconds());
//毫秒值---获取的是1970年1970 1.1 0:0:0到程序运行那一刻的时间差
//测试程序运行时间 程序运行前new Date().getTime() 程序运行后new Date().getTime()
System.out.println(date.getTime());//1708740879814
//获取当前程序运行时的时间类信息
System.out.println(date);
//通过有参的构造方法,将一个毫秒的时间封装成一个日期对象
Date d = new Date(1708740879814l);
System.out.println(d);
}
}
运行
Calendar类
Calendar 日历类 抽象类 用来定义日历功能,具体的实现可以交给子类实现
GregorianCalendar 格里高利历(公历)是Calendar抽象类具体子类
代码
package com.ffyc.javaapi.datedemo;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CalenderDemo {
public static void main(String[] args) {
//Calendar calendar = new GregorianCalendar();
Calendar calendar = Calendar.getInstance();
//get(具体的日历属性)
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH) + 1);
//月中第几天
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
//周中第几天 星期天是一周中的第一天
System.out.println(calendar.get(Calendar.DAY_OF_WEEK));
//年中第几天
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
//月中第几周
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));
//年中第几周
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));
//几时
System.out.println(calendar.get(Calendar.HOUR));
//几分
System.out.println(calendar.get(Calendar.MINUTE));
//几秒
System.out.println(calendar.get(Calendar.SECOND));
//设置系统时间
calendar.set(2022, 9, 10);
System.out.println(calendar.get(Calendar.YEAR));
//毫秒值---获取的是1970年1970 1.1 0:0:0到程序运行那一刻的时间差
System.out.println(calendar.getTimeInMillis());
}
}
运行
SimpleDateFormat类
代码一
将Date类型 格式化为 给定格式的字符串
package com.ffyc.javaapi.datedemo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
Date date1 = new Date();
String s1 = "张三";
//System.out.println(s1 + "" + date.getYear()+1988+date.getMonth()+1);
/*
yyyy 4位年
MM 月
dd 日 月中的天
HH 24小时刻
mm 分钟
ss 秒
S 毫秒
E 星期几
*/
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年-MM月-dd日 HH时:mm分:ss秒:S毫秒 E");
String datestr = sdf1.format(date1);
System.out.println(s1+""+datestr);c
}
}
运行
常用的转换符
代码二
把字符串 转为 Date类型
package com.ffyc.javaapi.datedemo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
String s2 = "2003年-3月-2日";
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年-MM月-dd日");
Date date2 = sdf2.parse(s2);
System.out.println(date2);
}
}
运行
java.math
BigInteger
代码
package com.ffyc.javaapi.mathdemo;
import java.math.BigInteger;
public class BigIntegerDemo {
public static void main(String[] args) {
//long a = 2222222222222222233333l;
BigInteger a = new BigInteger("22222222222222222333333333333");
BigInteger b = new BigInteger("22222222222222222333333333333");
BigInteger c = a.add(b);
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
运行
BigDecimal
代码
package com.ffyc.javaapi.mathdemo;
import java.math.BigDecimal;
public class BigDecimaDemo {
public static void main(String[] args) {
System.out.println((0.1 + 0.2) == 0.3);
System.out.println(0.1 + 0.2);
BigDecimal bd1 = new BigDecimal("0.1");
BigDecimal bd2 = new BigDecimal("0.2");
BigDecimal bd3 = bd1.add(bd2);
System.out.println(bd3);
BigDecimal bd4 = new BigDecimal("10");
BigDecimal bd5 = new BigDecimal("3");
//在除法运算时,默认遇到无限循环会报错,需要指定保留的小数位数,以免近似值的策略
BigDecimal bd6 = bd4.divide(bd5, 2, BigDecimal.ROUND_CEILING);
System.out.println(bd6);
}
}
运行
正则表达式
正则表达式
规则
是一种模式匹配语法,可以使用一些符号,来定义一个规则,然后用规则与字符串进行匹配
前情摘要
代码
package com.ffyc.javaapi.stringdemo;
import java.util.Arrays;
public class StringDemo8 {
/*
String s = "abc"; char[] c = ['a','b','c'];
*/
public static void main(String[] args) {
String name = "张三";//张三
name += "111";//张三111
System.out.println(name);
String s = "ab:cd:efg";
System.out.println(Arrays.toString(s.split(":")));
}
}
运行
正则表达式1
验证输入的内容必须是一个手机号格式
第一位:1
第二位:3 5 7 8 9
从第三位开始都是数字即可
拿到字符串每一位进行判断
正则表达式中符号:
\d 匹配的是0-9之间的数字
代码
package com.ffyc.javaapi.stringdemo;
public class StringDemo8 {
public static void main(String[] args) {
String p = "13245678912";
//匹配一位数字
boolean b1 = p.matches("\\d");
System.out.println(b1);
//匹配任意个数字
boolean b2 = p.matches("\\d*");
System.out.println(b2);
//恰好n次
boolean b3 = p.matches("\\d{9}");
System.out.println(b3);
//至少n次
boolean b4 = p.matches("\\d{3,}");
System.out.println(b4);
//至少n次,不超过m次
boolean b5 = p.matches("\\d{3,6}");
System.out.println(b5);
//[3578] 匹配3或5或7或8
boolean b6 = p.matches("[3578]*");
System.out.println(b6);
//电话号码判断
boolean b7 = p.matches("1[35789]\\d{9}");
System.out.println(b7);
//qq号 数字 6-12位 0不能开头
boolean q = p.matches("[1-9]\\d{5,11}");
System.out.println(q);
}
}
运行
正则表达式2
[1235]
[1-9]
[a-z]
[A-Z]
\\w == []A-z0-9]
.匹配任意的字符 \\.进行转义,只能匹配.
| X|Y 或
代码
package com.ffyc.javaapi.stringdemo;
public class StringDemo9 {
public static void main(String[] args) {
String p1 = "13FGF24V_HCCY5678L912";
/*boolean b1 = p.matches("[a-z]*");
boolean b1 = p.matches("[A-Z]*");
boolean b1 = p.matches("[a-z][A-Z]*");
boolean b1 = p.matches("[A-z]*");*/
boolean b1 = p1.matches("\\w*");//[A-z 0-9]
System.out.println(b1);
String p2 = "dvjcdjSC@145_54.com";
//邮箱模式 fxghccgfg@123hgvhg.com .com.cn
boolean b2 = p2.matches("\\w{6,10}@\\w{2,6}\\.(com|com\\.cn)");
System.out.println(b2);
}
}
运行
正则表达式3
代码
package com.ffyc.javaapi.stringdemo;
import java.util.Arrays;
public class StringDemo10 {
public static void main(String[] args) {
String s1 = "ss8ds5sxw";
System.out.println(Arrays.toString(s1.split("\\d")));
String s2 = "jkoj5nvf7vew";
System.out.println(s2.replace("j", "J"));
//"\\d" 正则表达式 匹配数字
System.out.println(s2.replaceAll("\\d", "J"));
System.out.println(s2.replaceFirst("\\d", "@"));
}
}