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