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);