Я пытаюсь отделить часы, минуты, секунды и миллисекунды от введенного времени.Прямо сейчас у меня есть
public MillisTime(String str)
throws IllegalArgumentException {
// Initialize values so that missing fields default to 0.
int hours = 0, minutes = 0, seconds = 0, millis = 0;
// Use Scanner class to parse the time string.
// Catch InputMismatchException and rethrow IllegalArgumentException.
Scanner scn = new Scanner(str);
scn.useDelimiter(":");
try {
if (scn.hasNext()) hours = scn.nextInt();
if (scn.hasNext()) minutes = scn.nextInt();
if (scn.hasNext()) seconds = scn.nextInt();
scn.useDelimiter(".");
if (scn.hasNext()) millis = scn.nextInt();
}
catch (InputMismatchException ex) {
throw new IllegalArgumentException(
"String Input Mismatch Exception: " + str);
}
scn.close();
this.setAllFields(hours, minutes, seconds, millis);
}
Вход, который он получает, - "16:5:7.009"
, и в результате получается String Input Mismatch Exception
.Если я уберу строки, которые ищут период и миллис, и введу что-то вроде 3:45
, это сработает.Как мне заставить эту работу найти :
и .
?