首页 / JAVA / Java常用工具类的使用
Java常用工具类的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java常用工具类的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7078字,纯文字阅读大概需要11分钟。
内容图文
![Java常用工具类的使用](/upload/InfoBanner/zyjiaocheng/1153/99d0aec7545a4533973ba1dd1150dd2c.jpg)
1.BigDecimal
在大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算。
在使用BigDecimal类来进行计算的时候,主要分为以下步骤:
1、用float或者double变量构建BigDecimal对象。
2、通过调用BigDecimal的加,减,乘,除等相应的方法进行算术运算。
3、把BigDecimal对象转换成float,double,int等类型。
一般来说,可以使用BigDecimal的构造方法或者静态方法的valueOf()方法把基本类型的变量构建成BigDecimal对象。
BigDecimal b1 = new BigDecimal(Double.toString(0.48));
BigDecimal b2 = BigDecimal.valueOf(0.48);
对于常用的加,减,乘,除,BigDecimal类提供了相应的成员方法。
public BigDecimal add(BigDecimal value);
public BigDecimal subtract(BigDecimal value);
public BigDecimal multiply(BigDecimal value);
public BigDecimal divide(BigDecimal value);
进行相应的计算后,我们可能需要将BigDecimal对象转换成相应的基本数据类型的变量,可以使用doubleValue()等方法。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package
com.ylfeiu.utils;
import
java.math.BigDecimal;
public
class
Decimal {
public
static
void
main(String[] args) {
BigDecimal big =
new
BigDecimal(Double.toString(
15.2658
));
BigDecimal big2 =
new
BigDecimal(
3.141592653
);
BigDecimal big3 = BigDecimal.valueOf(
3.141592653
);
System.out.println(big.divide(big2,
6
, BigDecimal.ROUND_HALF_UP).doubleValue() +
"\n"
);
//6是精度位数,
|
1
|
//ROUND_HALF_UP是向上取整
|
1
|
System.err.println(big +
"\n"
+ big2 +
"\n"
+ big3); } }
|
2.SimpleDateFormat
SimpleDateFormat的继承关系:
java.lang.Object
|
+----java.text.Format
|
+----java.text.DateFormat
|
+----java.text.SimpleDateFormat
格式化字母涵义:
y 年 M 月 d 日
h 时 在上午或下午 (1~12) ,H 时 在一天中 (0~23)
m 分 s 秒S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
package
com.ylfeiu.utils;
import
java.text.SimpleDateFormat;
import
java.util.Calendar;
import
java.util.Date;
/**
*
* @author Administrator
* 该类演示如何格式化时间
*/
public
class
FormatDateTime {
public
static
void
main(String[] args) {
SimpleDateFormat myFmt =
new
SimpleDateFormat(
"yyyy年MM月dd日 HH时mm分ss秒 E"
);
// 月,时是大写字母
SimpleDateFormat myFmt1 =
new
SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss E"
);
// 格式符号等价于now.toLocaleString(),也就是说now.toLocaleString()指定了格式
// 当然我们可以像这样自定义格式化yyyy/MM/dd HH:mm:ss
SimpleDateFormat myFmt2 =
new
SimpleDateFormat(
"一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区"
);
Date now =
new
Date();
Calendar c = Calendar.getInstance();
System.err.println(c.get(Calendar.YEAR));
//2014
System.err.println(now.getYear());
//114?不推荐,已过时
System.out.println(
"=============================="
);
Calendar c3 = Calendar.getInstance();
c3.add(Calendar.DATE,
100
);
//往后推算:100天以后
int
year = c3.get(Calendar.YEAR);
int
month = c3.get(Calendar.MONTH) +
1
;
int
date = c3.get(Calendar.DATE);
System.out.println(
"100天以后是:"
+year +
"年"
+ month +
"月"
+ date +
"日"
);
System.out.println(
"=============================="
);
System.out.println(myFmt1.format(c.getTime()));
System.out.println(myFmt1.format(now));
System.out.println(myFmt.format(now));
System.out.println(myFmt2.format(now));
//System.out.println(now.toLocaleString());// 已经过时,不推荐使用了,而且月份没有了0(1-10)
System.err.println(now);
//Tue Mar 11 17:07:00 CST 2014
}
}
|
3.随机数类Random
java 的随机数测试程序。共3种获取随机数的方法:
通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字
通过Math.random()返回一个0到1之间的double值.
通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
package
com.ylfeiu.utils;
import
java.util.Random;
public
class
RandomTest {
public
static
void
main(String args[]) {
testSystemTimeMillis();
testMathRandom();
// 新建“种子为1000”的Random对象,并通过该种子去测试Random的API
testRandomAPIs(
new
Random(
1000
),
" 1st Random(1000)"
);
testRandomAPIs(
new
Random(
1000
),
" 2nd Random(1000)"
);
// 新建“默认种子”的Random对象,并通过该种子去测试Random的API
testRandomAPIs(
new
Random(),
" 1st Random()"
);
testRandomAPIs(
new
Random(),
" 2nd Random()"
);
}
/**
* 返回随机数-01:测试System的currentTimeMillis()
*/
private
static
void
testSystemTimeMillis() {
// 通过
final
long
l = System.currentTimeMillis();
// 通过l获取一个[0, 100)之间的整数
final
int
i = (
int
) (l %
100
);
System.out.printf(
"\n---- System.currentTimeMillis() ----\n l=%s i=%s\n"
, l, i);
}
/**
* 返回随机数-02:测试Math的random()
*/
private
static
void
testMathRandom() {
// 通过Math的random()函数返回一个double类型随机数,范围[0.0, 1.0)
final
double
d = Math.random();
// 通过d获取一个[0, 100)之间的整数
final
int
i = (
int
) (d *
100
);
System.out.printf(
"\n---- Math.random() ----\n d=%s i=%s\n"
, d, i);
}
/**
* 返回随机数-03:测试Random的API
*/
private
static
void
testRandomAPIs(Random random, String title) {
final
int
BUFFER_LEN =
5
;
// 获取随机的boolean值
boolean
bool = random.nextBoolean();
// 获取随机的数组buf[]
byte
[] buf =
new
byte
[BUFFER_LEN];
random.nextBytes(buf);
// 获取随机的Double值,范围[0.0, 1.0)
double
d = random.nextDouble();
// 获取随机的float值,范围[0.0, 1.0)
float
f = random.nextFloat();
// 获取随机的int值
int
i1 = random.nextInt();
// 获取随机的[0,100)之间的int值
int
i2 = random.nextInt(
100
);
// 获取随机的long值
long
l = random.nextLong();
System.out.printf(
"\n---- %s ----\nb=%s, d=%s(范围[0.0, 1.0)), f=%s(范围[0.0, 1.0)), i1=%s, i2=%s(i2指定的有范围,它有重载方法), l=%s, buf=["
,
title, bool, d, f, i1, i2, l);
for
(
byte
bt : buf)
System.out.printf(
"%s, "
, bt);
System.out.println(
"]"
);
}
}
|
4.日历类Calendar
从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现。在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些,下面就介绍一下Calendar类的使用。
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。
其实Calendar类中还提供了很多其它有用的方法,下面简单的介绍几个常见方法的使用。
a、set()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package
com.ylfeiu.utils;
import
java.util.Calendar;
/**
* 该类计算指定两个日期之间的相差天数
*
* @author Administrator
*
*/
public
class
DateExample1 {
public
static
void
main(String[] args) {
// 设置两个日期
// 日期:20130219
Calendar c1 = Calendar.getInstance();
c1.set(
2013
,
3
-
1
,
19
);
// 日期:20140311
Calendar c2 = Calendar.getInstance();
c2.set(
2014
,
4
-
1
,
11
);
// 转换为相对时间
long
t1 = c1.getTimeInMillis();
long
t2 = c2.getTimeInMillis();
// 计算天数
long
days = (t2 - t1) / (
24
*
60
*
60
*
1000
);
System.out.println(days);
}
}
|
b.getTime()
c.add()
例子在SimpleDateFormat中有体现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
package
com.ylfeiu.utils;
import
java.util.Calendar;
/**
* 打印当前月份日历
*
* @author Administrator
*
*/
public
class
GetCalendar {
public
static
void
main(String[] args) {
// 获得当前时间
Calendar c = Calendar.getInstance();
// 设置代表的日期为1号
c.set(Calendar.DATE,
1
);
// 获得1号是星期几
int
start = c.get(Calendar.DAY_OF_WEEK);
// 获得当前月的最大日期数
int
maxDay = c.getActualMaximum(Calendar.DATE);
// 输出标题
System.out.println(
"星期日 星期一 星期二 星期三 星期四 星期五 星期六"
);
// 输出开始的空格
for
(
int
i =
1
; i <start; i++) {
System.out.print(
" "
);
}
// 输出该月中的所有日期
for
(
int
i =
1
; i <= maxDay; i++) {
// 输出日期数字
System.out.print(
" "
+ i);
// 输出分隔空格
System.out.print(
" "
);
//对前10位数字排版,因为它们只有一位数
if
(i <
10
) {
System.out.print(
‘ ‘
);
}
// 判断是否换行
if
((start + i -
1
) %
7
==
0
) {
System.out.println();
}
}
// 换行
System.out.println();
}
}
|
原文:http://www.cnblogs.com/ylfeiu/p/3594703.html
内容总结
以上是互联网集市为您收集整理的Java常用工具类的使用全部内容,希望文章能够帮你解决Java常用工具类的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。