我有一个有时间的数组
String[] times = {"08:00", "09:15", "09:45", "08:15", "08:45", "09:30"};
我想循环遍历数组的每个值,并检查它是否高于先前的值。 如果这是真的,它会在那一点拆分数组,这样就可以获得这两个数组:
String[] times1 = {"08:00", "09:15", "09:45"};
String[] times2 = {"08:15", "08:45", "09:30"};
如何在java中执行此操作?
答案 0 :(得分:0)
要拆分数组,只需使用Arrays.copyOfRange将左侧部分和右侧部分复制到两个新数组中。
//You first determine the split index
int splitIndex = 2;
String[] times = {"08:00", "09:15", "09:45", "08:15", "08:45", "09:30"};
String[] times1 = Arrays.copyOfRange(times,0,splitIndex + 1);
String[] times2 = Arrays.copyOfRange(times,splitIndex + 1,times.length);
要比较时间值,您可以自己解析这些简单的字符串。
public static int compareDates(String d1, String d2) {
String[] split1 = d1.split(":");
String[] split2 = d2.split(":");
int n1 = Integer.parseInt(split1[0]);
int n2 = Integer.parseInt(split2[0]);
if (n1 != n2)
return Integer.compare(n1,n2);
return Integer.compare(Integer.parseInt(split1[1]),Integer.parseInt(split2[1]));
}
其余由您决定,您只需要遍历主数组并在循环中使用这两段代码。
答案 1 :(得分:0)
使用以下代码:
String[] times = {"08:00", "09:15", "09:45", "08:15", "08:45", "09:30"};
String first[]=null;
String second[]=null;
for(int i=0;i<times.length-1;i++)
{
Date date=new SimpleDateFormat("hh:mm").parse(times[i]);
Date date2=new SimpleDateFormat("hh:mm").parse(times[i+1]);
if(date.getTime()>date2.getTime())
{
first=Arrays.copyOfRange(times, 0, i+1);
second=Arrays.copyOfRange(times, (i+1), (times.length));
}
}
希望它有所帮助。