Есть строки:
String s1 = "7:00";
String s2 = "12:34:56";
String s3 = "13:20";
Как их быстро перевести в int
int hh, mm, ss;
public static int[] unpack(String time) throws NullPointerException, NumberFormatException {
int[] output = {0, 0, 0};
String[] parts = time.split(":");
for (int x = 0; x < parts.length; x++) {
if (x >= output.length)
break;
output[x] = Integer.parseInt(parts[x]);
}
return output;
}
int[] result = unpack("12:34:56");
int hh = result[0];
int mm = result[1];
int ss = result[2];
Можно разбить строку на массив строк по разделителю :, затем преобразовать этот массив строк в массив чисел и в зависимости от длины получившегося массива (2 или 3) интерпретировать этот массив как [hh, mm] или [hh, mm, ss].
String s = "12:34:56";
int[] numbers = Stream
.of(s.split(":"))
.mapToInt(Integer::valueOf)
.toArray();
if (numbers.length == 2) {
int hh = numbers[0];
int mm = numbers[1];
// ...
} else if (numbers.length == 3) {
int hh = numbers[0];
int mm = numbers[1];
int ss = numbers[2];
// ...
} else {
throw new Exception();
}
Если хочется сделать покороче, то можно попробовать так:
String s = "12:34:56";
String[] numbers = (s.length() <= 5 ? s + ":00" : s).split(":");
int hh = Integer.valueOf(numbers[0]);
int mm = Integer.valueOf(numbers[1]);
int ss = Integer.valueOf(numbers[2]);
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости