Fil*_*Fil 8 java string spring
在JIRA中设置问题估计时,您可以输入类似的字符串"1d 2h 30m",JIRA会将此(我假设)转换为相应的毫秒数.
是否有可用的Java库?
我正在使用Spring托管bean,它接受一个属性,指示应该清除目录的频率,并且我希望允许配置采用人类可读的字符串而不是明确的毫秒数.
或者,如果有一种我没想到的更好的方法,我很乐意听到它.
解析器不是太复杂:
public static long parse(String input) {
long result = 0;
String number = "";
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (Character.isDigit(c)) {
number += c;
} else if (Character.isLetter(c) && !number.isEmpty()) {
result += convert(Integer.parseInt(number), c);
number = "";
}
}
return result;
}
private static long convert(int value, char unit) {
switch(unit) {
case 'd' : return value * 1000*60*60*24;
case 'h' : return value * 1000*60*60;
case 'm' : return value * 1000*60;
case 's' : return value * 1000;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
代码非常容错,它几乎忽略了它无法解码的任何东西(它忽略了任何空格,因此它接受"1d 1s","1s 1d","1d20m300s"等等).
| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |