我有一个来自API的字符串,它给了我一个旅行的持续时间.
PT5H27M PT5HPT27M我想从中得到一个Date变量.
我使用模式和匹配器编写了一些函数,但是当我的旅行列表很长时,它需要很长时间.你能给我一个更好的方法吗?我在下面附上了我的代码:
final Pattern p = Pattern.compile("PT(\\d*)H*(\\d*)M*");
private long getDurationOfTrip(Pattern pattern,String duration){
long durationOfTrip = 0 ;
Matcher m = pattern.matcher(duration);
if (m.find()){
if (duration.contains("H")&&duration.contains("M"))
durationOfTrip = (Long.parseLong(m.group(1))*60) + Long.parseLong(m.group(2));
else if (duration.contains("H")&& !duration.contains("M"))
durationOfTrip = (Long.parseLong(m.group(1))*60);
else
durationOfTrip = Long.parseLong(m.group(1));
}
return durationOfTrip;
}
Run Code Online (Sandbox Code Playgroud)