• 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 = "报名成功,请等待审核";
    }
  • 相关阅读:
    日志框架之Slf4j整合Logback
    使用SLF4J和Logback
    Java日志框架SLF4J和log4j以及logback的联系和区别
    docker部署apollo
    mysql8.0设置忽略大小写后无法启动
    将项目迁移到kubernetes平台是怎样实现的
    kubectl port-forward
    linux服务器安全配置最详解
    CentOS7.3下部署Rsyslog+LogAnalyzer+MySQL中央日志服务器
    统计linux 下当前socket 的fd数量
  • 原文地址:https://www.cnblogs.com/goloving/p/14901543.html
Copyright © 2020-2023  润新知