【Java】怎么比较两个字符串中的数字大小?
现在有这样两个字符串
String time1 = "07:18";
String time2 = "12:21";
Java中不能用 time1 > time2 这种方法比较,但是我发现js可以
请问java中如何满足这样的需求
(ps: 判断两个 时:分 的大小关系)
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,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 转成日期类型的对比,或者字符串分割,分成小时的数与分钟的数,然后转成数字进行
看需要,如果比较字符串直接用time1.compareTo(time2),如果比较时间大小,那你直接转换成数字比较可靠点
你这个只有时分,那就直接转数字,比较大小就可以
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);
equals方法可以比较String类型的数值类型中的数值大小
就那几楼说的 符合规范就直接用 String.compareTo 方法 不用在去换算成时间什么的了 没那么麻烦