【发布时间】:2019-11-09 20:02:27
【问题描述】:
制作一个可以根据首字母对单词进行排序的程序。从一个正常的循环直到退出应用程序开始。您的数据将存储在“字符串到字符串列表的映射”中。每次用户输入一个单词时,查看第一个字母并将其添加到正确的列表中。他们退出后,打印出每个字母的所有单词。
public static void main(String[] args) {
Map<String, ArrayList<String>> MyMap = new HashMap<String, ArrayList<String>>();
ArrayList<String> MyList = new ArrayList<String>();
Scanner scanner = new Scanner(System.in);
int input;
String MyString = null;
while (true) {
System.out.println("Press (1) to enter a word. n/Press (2) to exit.");
while (!scanner.hasNextInt()) {
scanner.next();
System.out.println("Need to press number (1) or (2)");
}
input = scanner.nextInt();
if (input == 1) {
System.out.println("Enter a word:");
MyString = scanner.next();
}
if (MyMap.containsKey(MyString.substring(0, 1))) {
MyMap.get(MyString.substring(0, 1)).add(MyString);
}
if (!MyMap.containsKey(MyString.substring(0, 1))) {
MyList = new ArrayList<String>();
MyList.add(MyString);
MyMap.put(MyString.substring(0, 1), MyList);
}
if (input == 2) {
MyMap.entrySet().forEach(entry -> {
System.out.println(entry.getKey() + " " + entry.getValue());
});
break;
}
}
scanner.close();
}
我的输出将打印出我输入的最后一个单词的副本。
例如:
输入一个单词: 啊 抗体 巴 公元前 按 (1) 输入单词。按 (2) 退出。 2 一个 [aa, ab] b [ba, bc, bc]
【问题讨论】: