使用 Map 创建菜单,但要删除 {} 和“,”
Create menu using Map but to remove the { } and ", "
我创建了这个菜单:
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
HashMap<Integer, String> menu = new HashMap<>();
menu.put(1, "Show clients from banks" + "\n");
menu.put(2, "Create new bank" + "\n");
menu.put(3, """
\t. "Choose a bank from where you want to see the clients:
A. BNP
B. ING
C. KBC
\s""");
System.out.println(menu);
我得到了输出位,正如您在输出中看到的那样,有一些我不想要的 {} 和“,”,还有其他方法可以使用 HashMap 创建类似的东西吗?
输出:
{1=Show clients from banks
, 2=Create new bank
, 3= . "Choose a bank from where you want to see the clients:
A. BNP
B. ING
C. KBC
}
期望的输出 - 因为它会是我将使用 sout
,但我必须使用它 HashMap<Integer, String> menu = new HashMap<>();
:
1=Show clients from banks
2=Create new bank
3= . "Choose a bank from where you want to see the clients:
A. BNP
B. ING
C. KBC
您需要重写 HashMap 的 toString(),这是一种糟糕的方法。创建自己的 printMenu() 方法来迭代自己。我还会从您的选项中删除新行。
public void printMenu(Map<Integer, String> menu) {
for (Entry<Integer, String> entry : menu) {
System.out.println(String.format("%d) %s", entry.getKey(), entry.getValue()));
}
}
我创建了这个菜单:
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
HashMap<Integer, String> menu = new HashMap<>();
menu.put(1, "Show clients from banks" + "\n");
menu.put(2, "Create new bank" + "\n");
menu.put(3, """
\t. "Choose a bank from where you want to see the clients:
A. BNP
B. ING
C. KBC
\s""");
System.out.println(menu);
我得到了输出位,正如您在输出中看到的那样,有一些我不想要的 {} 和“,”,还有其他方法可以使用 HashMap 创建类似的东西吗?
输出:
{1=Show clients from banks
, 2=Create new bank
, 3= . "Choose a bank from where you want to see the clients:
A. BNP
B. ING
C. KBC
}
期望的输出 - 因为它会是我将使用 sout
,但我必须使用它 HashMap<Integer, String> menu = new HashMap<>();
:
1=Show clients from banks
2=Create new bank
3= . "Choose a bank from where you want to see the clients:
A. BNP
B. ING
C. KBC
您需要重写 HashMap 的 toString(),这是一种糟糕的方法。创建自己的 printMenu() 方法来迭代自己。我还会从您的选项中删除新行。
public void printMenu(Map<Integer, String> menu) {
for (Entry<Integer, String> entry : menu) {
System.out.println(String.format("%d) %s", entry.getKey(), entry.getValue()));
}
}