Java编程常用数据转换:String与int互转、Date与String互转、BigDecimal与int比较(报错operator > cannot be applied to java.math.BigDecimal,int)

一、String与Int互转

  在 Java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换。

String str = "123";
int a = Integer.parseInt(str);  // 方式1
int b = Integer.valueOf(str).intValue()   // 方式2

  在转换过程中需要注意:因为字符串中可能会出现非数字的情况,所以在转换的时候需要捕捉处理异常。

1、Integer.parseInt(String)方法:parseInt()是Integer包装类里的一个方法,可以将字符串解析为带符号的整数

  注:

(1)使用parseInt()方法时,字符串中的所有字符都必须是数字,但第一个字符可以是减号“ - ”。例:String str="-1234"; 可以转换为  -1234

(2)当String类型中的不是所有字符都为数字时,也会抛出异常:NumberFormatException。

2、Integer.valueOf(String)方法:valueOf()同样是Integer包装类的一个方法,可以将String类型的值转换为int类型的值。这和parseInt()方法相似,它们转换后的输出的结果是相同的。

3、但,Integer.valueOf()和Integer.parseInt()之间还是存在差异的:

  valueOf(String)方法会返回Integer类的对象,而parseInt(String)方法返回原始的int值。

4、int转string

String s = String.valueOf(i);
String s = Integer.toString(i);
String s = i + '';

二、Date与String互转

1、Date转为String

SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = f.format(examApply.getCreateTime())

2、String转为Date

  参数String类型的格式必须与注释中的日期格式对齐,否则会报错

DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //日期格式
Date date = format.parse(time);

3、使用数据库类将String转为Date

  转换后格式不改变,String类型为Date类型。该类的源码只支持 - 作为分隔符,所以必须使用 - 作为分隔符。 在确定以 - 为分隔符后,此方法相对会简单很多。

Date date =java.sql.Date.valueOf("2021-06-16");

三、BigDecimal 与 int 比较

  这里说一个报错:operator > cannot be applied to java.math.BigDecimal,int,BigDecimal无法用int之类的 >、<、=之类的比较。如果使用的话,就会报这个错误。

  BigDecimal必须使用compareTo()方法来比较,它根据两个值的大小分别返回负数、正数和0,分别表示小于、大于和等于。

  而且也需要用 new BigDecimal(0) 转换为 BigDecimal 才可以进行比较。

if(examRoom.getPrice().compareTo(new BigDecimal(0)) == 0){
  user.setStatus(ExamApplyStatus.PAYED);
  message = "报名成功,请等待审核";
}
原文地址:https://www.cnblogs.com/goloving/p/14901543.html