u011856283
你好杰米
采纳率95%
2018-10-10 03:12

【Java】怎么比较两个字符串中的数字大小?

5
已采纳

现在有这样两个字符串
String time1 = "07:18";
String time2 = "12:21";

            Java中不能用 time1 > time2 这种方法比较,但是我发现js可以

            请问java中如何满足这样的需求

            (ps: 判断两个     时:分    的大小关系)
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

8条回答

  • ththcc CZ__ 3年前
    String time1 = "12:21";
    String time2 = "07:18";
    System.out.println(time1.compareTo(time2));//1
    
    time1 = "20:21";
    time2 = "01:18";
    System.out.println(time1.compareTo(time2));//2
    
    time1 = "14:21";
    time2 = "10:18";
    System.out.println(time1.compareTo(time2));//4
    
    time1 = "14:21";
    time2 = "23:18";
    System.out.println(time1.compareTo(time2));//-1
    
    time1 = "14:21";
    time2 = "14:21";
    System.out.println(time1.compareTo(time2));//0
    

    事实说明,time1.compareTo(time2)返回结果>0说明time1大;返回结果<0说明time2大;返回结果=0说明一样大。

    点赞 评论 复制链接分享
  • dsxjinzhiqiang dsxjinzhiqiang 3年前

    看需要,如果比较字符串直接用time1.compareTo(time2),如果比较时间大小,那你直接转换成数字比较可靠点

    点赞 1 评论 复制链接分享
  • Maomao_jiang NameException 5月前

    equals方法可以比较String类型的数值类型中的数值大小

     

    点赞 评论 复制链接分享
  • FluxMode FluxMode 3年前
                你这个只有时分,那就直接转数字,比较大小就可以
                String data1 = "07:18".replaceAll(":",".");
        String data2 = "12:21".replaceAll(":",".");
        Double double1 = Double.valueOf(data2);
        Double double2 = Double.valueOf(data2);
        System.out.println(double1 > double1);
    
    点赞 评论 复制链接分享
  • x060508 x060508 3年前

    就那几楼说的 符合规范就直接用 String.compareTo 方法 不用在去换算成时间什么的了 没那么麻烦

    点赞 1 评论 复制链接分享
  • weixin_39808420 世纪怪咖 3年前

    最方便应该就是直接使用 a.compareto(b) 结果为-1证明b大,1证明a大,也可以 simpledateformat 转成日期类型的对比,或者字符串分割,分成小时的数与分钟的数,然后转成数字进行

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 3年前

    boolean compare(String time1, String time2){
    String[] arr1 = time1.split(":");
    String[] arr2 = time2.split(":");
    if (Integer.parseInt(arr1[0]) == Integer.parseInt(arr2[0]))
    return (Integer.parseInt(arr1[1]) > Integer.parseInt(arr2[1]);
    else
    return (Integer.parseInt(arr1[0]) > Integer.parseInt(arr2[0]);
    }

    点赞 评论 复制链接分享
  • ljr340823 ljr340823 3年前

    time1,time2转换成DateTime,然后再用DateTime.Compare(time1,time2)比较时间大小

    点赞 评论 复制链接分享

相关推荐