Итак, у меня есть .dat-файл, который является списком. Каждая строка начинается с буквы в качестве команды для моей программы будильника, а за некоторыми последуют цифры в формате времени (XX: XX). Мне нужно сканировать письмо arr [0], поэтому программа знает, какой метод реализовать, а затем отделить целые числа от двоеточия, чтобы иметь arr [1] и arr [2]. Я не могу понять, как это сделать.Сканирование файла со строкой и int Java
Пример: T 25:00
while (scan.hasNextLine()){
String[] data = scan.nextLine().split(" ");
if (data[0] == "D"){
myClock.getTime();
}
else if (data[0] == "A"){
myClock.getAlarmTime();
}
else if (data[0] == "T"){
myClock.setTime(data[1], data[2]);
}
else if (data[0] == "S"){
myClock.setAlarmTime(data[1], data[2]);
}
else if (data[0] == "O"){
myClock.setAlarmOn(true);
}
else if (data[0] == "F"){
myClock.setAlarmOn(false);
}
else{
myClock.quit();
говорит мне, что есть несовместимые типы и .String не могут быть преобразованы в Int. Итак, как мне конвертировать или сканировать два отдельно?
Я бы не использовать сканер. Я бы не разделил целые числа. Прочитайте файл, используя ['Files.lines'] (https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#lines-java.nio.file.Path-), а затем проанализируйте каждую строку командой ['enum Command'] (https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html) и [' java.time.LocalTime'] (https : //docs.oracle.com/javase/8/docs/api/java/time/LocalTime.html). Java - это язык OO - научитесь использовать это в своих интересах, а не бороться с ним. Продолжение ... –
Извините, отредактировал его, чтобы включить остальную часть моего кода. – DNH
... есть 'Command реализует ClockCommand', который является' интерфейсом' с методом 'apply (LocalTime time)'. Затем, когда вы проанализировали 'enum' с' Enum.valueOf', вам просто нужно вызвать 'command.apply (time)'. Нет 'if..else' цепей. Просто чистая, описательная логика OO. –