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🇲🇲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 = "报名成功,请等待审核";
}