龙空技术网

Java入门教程五(数字和日期处理)

韭菜Java 221

前言:

当前小伙伴们对“java非数字不足两位补零”大体比较关注,姐妹们都想要知道一些“java非数字不足两位补零”的相关文章。那么小编也在网摘上收集了一些关于“java非数字不足两位补零””的相关文章,希望大家能喜欢,兄弟们一起来了解一下吧!

Java 提供了处理相关问题的类,包括 Math 类、Random 类、BigInteger 类、Date 类等。

Math类

Math 类封装了常用的数学运算,提供了基本的数学操作,如指数、对数、平方根和三角函数等。Math 类位于 java.lang 包

静态常量

Math 类中包含 E 和 PI 两个静态常量,其中 E 用于记录 e 的常量,而 PI 用于记录圆周率的值。

System.out.println(Math.E); //2.718281828459045System.out.println(Math.PI);	//3.141592653589793

最大值、最小值和绝对值

static int abs(int a)	返回 a 的绝对值static long abs(long a)	返回 a 的绝对值static float abs(float a)	返回 a 的绝对值static double abs(double a)	返回 a 的绝对值static int max(int x,int y)	返回 x 和 y 中的最大值static double max(double x,double y)	返回 x 和 y 中的最大值static long max(long x,long y)	返回 x 和 y 中的最大值static float max(float x,float y)	返回 x 和 y 中的最大值static int min(int x,int y)	返回 x 和 y 中的最小值static long min(long x,long y)	返回 x 和 y 中的最小值static double min(double x,double y)	返回 x 和 y 中的最小值static float min(float x,float y)	返回 x 和 y 中的最小值

求整运算

static double ceil(double a)	返回大于或等于 a 的最小整数static double floor(double a)	返回小于或等于 a 的最大整数static double rint(double a)	返回最接近 a 的整数值,如果有两个同样接近的整数,则结果取偶数static int round(float a)	将参数加上 1/2 后返回与参数最近的整数static long round(double a)	将参数加上 1/2 后返回与参数最近的整数,然后强制转换为长整型

三角函数运算

tatic double sin(double a)	返回角的三角正弦值,参数以孤度为单位static double cos(double a)	返回角的三角余弦值,参数以孤度为单位static double asin(double a)	返回一个值的反正弦值,参数域在 [-1,1],值域在 [-PI/2,PI/2]static double acos(double a)	返回一个值的反余弦值,参数域在 [-1,1],值域在 [0.0,PI]static double tan(double a)	返回角的三角正切值,参数以弧度为单位static double atan(double a)	返回一个值的反正切值,值域在 [-PI/2,PI/2]static double toDegrees(double angrad)	将用孤度表示的角转换为近似相等的用角度表示的角staticdouble toRadians(double angdeg)	将用角度表示的角转换为近似相等的用弧度表示的角

指数运算

static double exp(double a)	返回 e 的 a 次幂static double pow(double a,double b)	返回以 a 为底数,以 b 为指数的幂值static double sqrt(double a)	返回 a 的平方根static double cbrt(double a)	返回 a 的立方根static double log(double a)	返回 a 的自然对数,即 lna 的值static double log10(double a)	返回以 10 为底 a 的对数

生成随机数

生成一个指定范围之内的随机数字有两种方法:一种是调用 Math 类的 random() 方法,一种是使用 Random 类

Random 类提供了丰富的随机数生成方法,可以产生 boolean、int、long、float, byte 数组以及 double 类型的随机数,这是它与 random() 方法最大的不同之处。random() 方法只能产生 double 类型的 0~1 的随机数。

Random 类位于 java.util 包中,该类常用的有如下两个构造方法。

Random():该构造方法使用一个和当前系统时间对应的数字作为种子数,然后使用这个种子数构造 Random 对象。

Random(long seed):使用单个 long 类型的参数创建一个新的随机数生成器。

oolean nextBoolean()	生成一个随机的 boolean 值,生成 true 和 false 的值概率相等double nextDouble()	生成一个随机的 double 值,数值介于[0,1.0),含 0 而不包含 1.0int nextlnt()	生成一个随机的 int 值,该值介于 int 的区间,也就是 -231~231-1。如果需要生成指定区间的 int 值,则需要进行一定的数学变换int nextlnt(int n)	生成一个随机的 int 值,该值介于 [0,n),包含 0 而不包含 n。如果想生成指定区间的 int 值,也需要进行一定的数学变换void setSeed(long seed)	重新设置 Random 对象中的种子数。设置完种子数以后的 Random 对象和相同种子数使用 new 关键字创建出的 Random 对象相同long nextLong()	返回一个随机长整型数字boolean nextBoolean()	返回一个随机布尔型值float nextFloat()	返回一个随机浮点型数字double nextDouble()	返回一个随机双精度值

数字格式化

使用 DedmalFormat 类对结果进行格式化处理。例如,将小数位统一成 2 位,不足 2 位的以 0 补齐。DecimalFormat 是 NumberFormat 的一个子类,用于格式化十进制数字。DecimalFormat 类包含一个模式和一组符号

0	显示数字,如果位数不够则补 0#	显示数字,如果位数不够不发生变化.	小数分隔符-	减号,	组分隔符E	分隔科学记数法中的尾数和小数%	前缀或后缀,乘以 100 后作为百分比显示?	乘以 1000 后作为千进制货币符显示。用货币符号代替。如果双写,用国际货币符号代替;如果出现在一个模式中,用货币十进制分隔符代替十进制分隔符float f = 5487.45697;DecimalFormat df1=new DecimalFormat("0.0");DecimalFormat df2=new DecimalFormat("#.#");DecimalFormat df3=new DecimalFormat("000.000");DecimalFormat df4=new DecimalFormat("###.###");System.out.println("0.0 格式:"+df1.format(f)); //0.0 格式:5487.5System.out.println("#.# 格式:"+df2.format(f)); //#.# 格式:5487.5System.out.println("000.000 格式:"+df3.format(f)); //000.000 格式:5487.457System.out.println("###.### 格式:"+df4.format(f)); //###.### 格式:5487.457

时间日期的处理

java.util.Date 类和 java.util.Calendar 类。其中,Date 类主要封装了系统的日期和时间的信息,Calendar 类则会根据系统的日历来解释 Date 对象

Date 类

Date 类表示系统特定的时间戳,可以精确到毫秒。Date 对象表示时间的默认顺序是星期、月、日、小时、分、秒、年。Date 类有如下两个构造方法。

Date():此种形式表示分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),使用该构造方法创建的对象可以获取本地的当前时间。

Date(long date):此种形式表示从 GMT 时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0 秒开始经过参数 date 指定的毫秒数。

Date date1=new Date(); //调用无参数构造函数System.out.println(date1.toString()); //输出:Wed May 18 21:24:40 CST 2016Date date2=new Date(60000); //调用含有一个long类型参数的构造函数System.out.println(date2); //输出:Thu Jan 0108:01:00 CST 1970

Date 类提供了许多与日期和事件相关的方法

boolean after(Date when)	判断此日期是否在指定日期之后boolean before(Date when)	判断此日期是否在指定日期之前int compareTo(Date anotherDate)	比较两个日期的顺序boolean equals(Object obj)	比较两个日期的相等性long getTime()	返回自 1970 年 1 月 1 日 00:00:00 GMT 以来,此 Date 对象表示的毫秒数String toString()	把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。其中 dow 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat)

Calendar 类

Calendar 类是一个抽象类,它为特定瞬间与 YEAR、MONTH、DAY_OF—MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期的日期) 提供了一些方法创建 Calendar 对象不能使用 new 关键字,因为 Calendar 类是一个抽象类,但是它提供了一个 getInstance() 方法来获得 Calendar类的对象。getInstance() 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化。

Calendar c=Calendar.getInstance();

创建了一个 Calendar 对象后,就可以通过 Calendar 对象中的一些方法来处理日期、时间

void add(int field, int amount)	根据日历的规则,为给定的日历字段 field 添加或减去指定的时间量 amountboolean after(Object when)	判断此 Calendar 表示的时间是否在指定时间 when 之后,并返回判断结果boolean before(Object when)	判断此 Calendar 表示的时间是否在指定时间 when 之前,并返回判断结果void clear()	清空 Calendar 中的日期时间值int compareTo(Calendar anotherCalendar)	比较两个 Calendar 对象表示的时间值(从格林威治时间 1970 年 01 月 01 日00 时 00 分 00 秒至现在的毫秒偏移量),大则返回 1,小则返回 -1,相等返回 0int get(int field)	返回指定日历字段的值int getActualMaximum(int field)	返回指定日历字段可能拥有的最大值int getActualMinimum(int field)	返回指定日历字段可能拥有的最小值int getFirstDayOfWeek()	获取一星期的第一天。根据不同的国家地区,返回不同的值static Calendar getInstance()	使用默认时区和语言坏境获得一个日历static Calendar getInstance(TimeZone zone)	使用指定时区和默认语言环境获得一个日历static Calendar getInstance(TimeZone zone,Locale aLocale)	使用指定时区和语言环境获得一个日历Date getTime()	返回一个表示此 Calendar 时间值(从格林威治时间 1970 年 01 月 01 日 00 时00 分 00 秒至现在的毫秒偏移量)的 Date 对象long getTimeInMillis()	返回此 Calendar 的时间值,以毫秒为单位void set(int field, int value)	为指定的日历字段设置给定值void set(int year, int month, int date)	设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值void set(int year, int month, int date, int hourOfDay,int minute, int second)	设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、 MINUTE 和 SECOND 的值void setFirstDayOfWeek(int value)	设置一星期的第一天是哪一天void setTimeInMillis(long millis)	用给定的 long 值设置此 Calendar 的当前时间值

日期格式化

格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式。例如将日期“Fri May 18 15:46:24 CST2016” 格式转换为 “2016-5-18 15:46:24 星期五”的格式。使用 DateFormat 类和 SimpleDateFormat 类来格式化日期

DateFormat 类

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期→文本)、解析(文本→日期)和标准化日期

在创建 DateFormat 对象时不能使用 new 关键字,而应该使用 DateFormat 类中的静态方法 getDateInstance()

SimpleDateFormat 类

使用 DateFormat 类格式化日期/时间并不能满足要求,那么就需要使用 DateFormat 类的子类——SimpleDateFormat

SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类,它允许进行格式化(日期→文本)、解析(文本→日期)和规范化。SimpleDateFormat 使得可以选择任何用户定义的日期/时间格式的模式

SimpleDateFormat 类主要有如下 3 种构造方法

SimpleDateFormat():用默认的格式和默认的语言环境构造 SimpleDateFormat。SimpleDateFormat(String pattern):用指定的格式和默认的语言环境构造 SimpleDateF ormat。SimpleDateFormat(String pattern,Locale locale):用指定的格式和指定的语言环境构造 SimpleDateF ormat。
y	年份。一般用 yy 表示两位年份,yyyy 表示 4 位年份	使用 yy 表示的年扮,如 11;使用 yyyy 表示的年份,如 2011M	月份。一般用 MM 表示月份,如果使用 MMM,则会根据语言环境显示不同语言的月份	使用 MM 表示的月份,如 05;使用 MMM 表示月份,在 Locale.CHINA语言环境下,如“十月”;在 Locale.US语言环境下,如 Octd	月份中的天数。一般用 dd 表示天数	使用 dd 表示的天数,如 10D	年份中的天数。表示当天是当年的第几天, 用 D 表示	使用 D 表示的年份中的天数,如 295E	星期几。用 E 表示,会根据语言环境的不同, 显示不同语言的星期几	使用 E 表示星期几,在 Locale.CHINA 语言环境下,如“星期四”;在 Locale.US 语言环境下,如 ThuH	一天中的小时数(0~23)。一般用 HH 表示小时数	使用 HH 表示的小时数,如 18h	一天中的小时数(1~12)。一般使用hh表 示小时数	使用 hh 表示的小时数,如 10 (注意 10 有可能是 10 点,也可能是 22 点)m	分钟数。一般使用 mm 表示分钟数	使用 mm 表示的分钟数,如 29s	秒数。一般使用 ss 表示秒数	使用 ss 表示的秒数,如 38S	毫秒数。一般使用 SSS 表示毫秒数	使用 SSS 表示的毫秒数,如 156

标签: #java非数字不足两位补零