所以我有一個.dat文件,它是一個列表。每行以一個字母開頭,作爲我的鬧鐘程序的命令,其中一些以時間格式(XX:XX)的數字開頭。我需要掃描字母arr [0],以便程序知道要實現哪種方法,然後將冒號中的整數與arr [1]和arr [2]分開。我似乎無法弄清楚如何做到這一點。用String和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是一種面向對象的語言 - 學習如何使用它,而不是與之對抗。續... –
抱歉編輯它以包括我的代碼的其餘部分 – DNH
...有'命令實現ClockCommand'這是一個'接口'與'apply(LocalTime時間)'方法'。然後,當你用'Enum.valueOf'解析'enum'時,你只需要調用'command.apply(time)'。沒有'if..else'鏈。只是乾淨,描述性的OO邏輯。 –