Я хочу, чтобы получить конкретный элемент в списке. Однако этот список содержится в другом списке. Причина в том, что я читал в файле свойств, с ключами, имеющими более одного значения, назначенного ему, разделенным запятыми. Я создаю список для каждого ключа и его значений и добавляю его в другой список, который содержит несколько списков для каждого ключа и его значений.Как получить определенный элемент в списке списков?
# Menu properties file
menuEntryPoint=0
indent=\t\t\t
lines=---------------------------------------------------------
mainMenu=M a i n M e n u
0.0=First Sub Menu, openMenu(1)
0.1=Second Sub Menu, openMenu(2)
0.2=Third Sub Menu, openMenu(3)
1=First Sub Menu
1.0=Execute this command, executeCommand(...)
1.1=Execute another command, executeCommand(...)
1.2=Execute other command, openMenu(A)
2=First Sub Menu
2.0=Execute this command, executeCommand(...)
2.1=Execute another command, executeCommand(...)
2.2=Execute other command, openMenu(A)
3=First Sub Menu
3.0=Execute this command, executeCommand(...)
3.1=Execute another command, executeCommand(...)
3.2=Execute other command, openMenu(A)
Ниже код я написал для печати на экран:
List<List<String>> menuProperties = new ArrayList<List<String>>();
public void configMenuDisplayProperties() throws IOException {
Date date = new Date();
Properties menuProp = new Properties();
FileInputStream in = new FileInputStream("C:\\Test\\menu.properties");
menuProp.load(in);
//Create list of lists for properties
menuProperties.add(getPropertyList(menuProp, "0"));
menuProperties.add(getPropertyList(menuProp, "1"));
menuProperties.add(getPropertyList(menuProp, "2"));
menuProperties.add(getPropertyList(menuProp, "3"));
System.out.println(date.toString() + "\t\t" + menuProp.getProperty("developmentArea") + "\n\n");
System.out.println(menuProp.getProperty("indent") + menuProp.getProperty("mainMenu") + "\n");
for (Enumeration<?> e = menuProp.propertyNames(); e.hasMoreElements();) {
String name = (String)e.nextElement();
String value = menuProp.getProperty(name);
if (name.startsWith(menuProp.getProperty("menuEntryPoint"))) {
System.out.println(menuProp.getProperty("indent") + name + "\t" + menuProp.getProperty(name));
}
}
}
Выход:
Mon Jun 08 13:39:43 EDT 2015
M a i n M e n u
0.2 Third Sub Menu, openMenu(C)
0.1 Second Sub Menu, openMenu(2)
0.0 First Sub Menu, openMenu(1)
Как именно я могу напечатать определенное значение ключа, который находится в список списков? Я пытаюсь заставить свой вывод выглядеть так, но у меня возникают проблемы с этим.
Mon Jun 08 13:39:43 EDT 2015
M a i n M e n u
0.0 First Sub Menu
0.1 Second Sub Menu
0.2 Third Sub Menu
Я попытался сделать следующее
System.out.println(menuProp.getProperty("indent") + name + "\t" + menuProp.getProperty(name));
Но я получаю первый выход вы видите ... Любая помощь будет принята с благодарностью.
вы используете Java 7 или выше? –
@OSryx Это должно быть совместимо с JRE 1.5.0 и не выше ..... :( – Sam5487