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

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

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

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

            (ps: 判断两个     时:分    的大小关系)

7个回答

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说明一样大。

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

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

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

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]);
}

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

            你这个只有时分,那就直接转数字,比较大小就可以
            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);
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问