java数据类型转换以及大小比较
- 1.String`
- 1.1比较
- 1.2判断与截取
- 1.3类型转换
- 2.Long
- 2.1大小比较
- 2.2类型转换
- 3.Date
- 3.1大小比较
- 3.2类型转换
- 4.bigdecimal
- 4.1大小比较
- 4.2类型转换
1.String`
1.1比较
比较是否相同,不能直接用==(前端使用==),要用equals();
1.2判断与截取
1.2.1. 字符串是否以某字符为开始:.startWith();
1.2.2 字符是否为纯数字:str.matches("[0-9]+") //正则表达式
1.2.3 字符截取:split() : 括号中输入的为分割的标准,比如split(“,”)则是以逗号为分隔符对字符串进行分割。subString() : (字符串下标从0开始)分为两种,一种是只传入一个参数,比如subString(1),是指从下标为1的字符开始,一直到结尾、第二种时传入两个参数,比如subString(1,4),是指从下标为1的字符开始,截取到下标为4的字符,不包含下标为4的字符。StringUtils
1.3类型转换
其他类型转换为String 需要.toString();
2.Long
2.1大小比较
2.1.1:对于Long类型的数据,这个数据是一个对象,所以对象不可以直接通过“>”,“==”,“<”的比较,如果要比较两个对象的是否相等的话,我们可以用Long对象的.equals()方法:
//Long对象的.equals()方法:
Long l1 = new Long(100);
Long l2 = new Long(200);
System.out.println(l1.equals(l2))如果要进行“>”,“<”的比较的话,可以通过Long对象的.longValue()方法:
//Long对象的.longValue()
Long l1 = new Long(100);
Long l2 = new Long(200);
System.out.println(l1.longValue()<l2.longValue());2.1.2 long数据的大小的比较
long类型是基本数据类型,所以可以直接通过>,<,= 来进行比较大小
2.2类型转换
2.2.1Long.ValueOf("String") 返回Long包装类型
2.2.2Long.parseLong("String") 返回long基本数据类型
3.Date
3.1大小比较
3.1.1 compareTo: 如果连个Date相等,则返回值 0;如果 Date a 在 Date b参数之前,则返回小于 0 的值;如果Date a 在 Date b参数之后,则返回大于 0 的值
String beginTime = "2021-06-28 14:42:32";
String endTime = "20121-06-29 12:26:32";
//格式化日期
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date a = dateFormat.parse(beginTime);
Date b = dateFormat.parse(endTime);
int i = dateTime1.compareTo(dateTime2);3.1.2 Date自带的before()或者after():结果通过boolean类型来判断
String beginTime = "2021-06-28 14:42:32";
String endTime = "20121-06-29 12:26:32";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date a = format.parse(beginTime);
Date b = format.parse(endTime);
boolean before = a.before(b);
boolean after = a.after(b);
} catch (ParseException e) {
e.printStackTrace();3.2类型转换
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");具体:
String beginTime = "2021-06-28 14:42:32";
String endTime = "20121-06-29 12:26:32";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date a = format.parse(beginTime);
Date b = format.parse(endTime);4.bigdecimal
4.1大小比较
4.1.1: 两个比较大小:
//定义BigDecimal
BigDecimal num1 = new BigDecimal (9);
BigDecimal num2 = new BigDecimal (11);
if(num1.compareTo(num2) == -1){
System.out.println("num1小于num2");
}
if(num1.compareTo(num2) == 0){
System.out.println("num1等于num2");
}
if(num1.compareTo(num2) == 1){
System.out.println("num1大于num2");
}
if(num1.compareTo(num2) > -1){
System.out.println("num1大于等于num2");
}
if(num1.compareTo(num2) < 1){
System.out.println("num1小于等于num2");
}4.1.2 与BigDecimal.ZERO比较
BigDecimal bigDecimal = new BigDecimal("100");
if(bigDecimal.compareTo(BigDecimal.ZERO)==-1){
//bigDecimal小于0
}
if(bigDecimal.compareTo(BigDecimal.ZERO)==0){
//bigDecimal等于0
}
if(bigDecimal.compareTo(BigDecimal.ZERO)==1){
//bigDecimal大于0
}4.1.3:计算 加减乘除
BigDecimal num1 = new BigDecimal (9);
BigDecimal num2 = new BigDecimal (11);
//加法
BigDecimal result1 = num1.add(num2);
//减法
BigDecimal result2 = num1.subtract(num2);
//乘法
BigDecimal result3 = num1.multiply(num2);
//绝对值
BigDecimal result4 = num3.abs();
//除法 (BigDecimal divisor 除数, int scale 精确小数位, int roundingMode 舍入模式)
BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP);4.2类型转换
4.2.1:String 转 BigDecimal
String string = "2021.6";
//String 转 BigDecimal
BigDecimal bigDecimalValue = new BigDecimal(string);4.2.2: int 转 BigDecimal
int i = 5;
//int 转 BigDecimal
BigDecimal bigDecimalValue = new BigDecimal(i);4.2.3
double d = 5.5;
//double 转 BigDecimal 时 要先把double转为String类型
BigDecimal bigDecimalValue = new BigDecimal(Double.toString(d));//注意这里要划重点,double直接转为BigDecimal会因为精度问题导致不准确,所以需要先转换为String,再转换为BigDecimal
//BigDecimal 转 double
double j = bigDecimalValue.doubleValue();
System.out.println("BigDecimal转double后:"+j);
















