我需要創建一個Java控制檯應用程序,向用戶提供有關食物名稱的建議。這些信息將從sqlite
數據庫文件中獲取。用戶將編寫文本和程序將低語項目的名稱。當用戶想要完成文本時,他按下TAB鍵,應用程序將獲得下一個項目。 我已經將所有數據庫項目記錄在ArrayList中。自動完成控制檯文本
My main idea(without everything except for the top text)
的代碼部分 - 主類
Scanner sc=new Scanner(System.in);
ArrayList<Food> foodList= DatabaseServices.loadAllFood();
ArrayList<String> foodNameList=new ArrayList();
String nameFood;
while (condition) {//when I have all recipe names
//some code
nameFood=sc.nextLine();
foodNameList(nameFood);
}
編輯:
DatabaseServices類
public ArrayList<food> loadAllFood() {//fetch data and sort them
ArrayList<food> foodList = new ArrayList<>();
try {
String SQL = "SELECT * FROM foods ";
ResultSet data = MyDatabaseConnection.executeQuery(SQL);
do {
Food food= new Food(data.getInt("food_id"),
data.getString("nfood_nazev"),
data.getInt("food_bilkoviny"),
data.getInt("food_sacharidy"),
data.getInt("food_tuky"));
foodList .add(potravina);
} while (data.next());
Collections.sort(foodList);
} catch (SQLException ex) {
Logger.getLogger(DatabaseServices.class.getName()).log(Level.SEVERE, null, ex);
}
return foodList;
}
有一些簡單的方法做T帽子???
1)獲取數據2)對它們進行排序3)文本框的onChange,二進制搜索列表用於爲輸入的超弦(如果有的話)4)如果有的話,顯示它在建議 –
最接近的匹配1),2)完成3)它不應該是文本框,而是jconsole。我解釋得很糟:/。列表搜索我希望使用foreach並且條件如果是類似字符串的東西。(string +「。*」) –