我已将单词文件转换为String数组。我需要以某种方式将数组转换为字长列表并使其可搜索。换句话说,我需要能够输入一个单词长度(例如,5),并且只能显示单词长度为5的单词。救命?
public static void main(String[] args) throws IOException {
String token1 = "";
Scanner scan = new Scanner(new File("No.txt"));
List<String> temps = new ArrayList<String>();
while (scan.hasNext()){
token1 = scan.next();
temps.add(token1);
}
scan.close();
String[] tempsArray = temps.toArray(new String[0]);
for (String s : tempsArray) {
答案 0 :(得分:4)
你没有使用数组。您需要的是收藏品,更准确地说是:Maps和Lists;因为你想使用Map<Integer, List<String>>
。
含义:使用&#34;字长&#34;的地图作为关键;并且映射的条目是包含具有该长度的所有那些单词的列表。这里有一些代码可以帮助您入门:
Map<Integer, List<String>> wordsByLength = new HashMap<>();
// now you have to fill that map; lets assume tempsArray contains all your words
for (String s : tempsArray) {
List<String> listForCurrentLength = wordsByLength.get(s.length());
if (listForCurrentLength == null) {
listForCurrentLength = new ArrayList<>();
}
listForCurrentLength.add(s);
wordsByLength.put(s.length(), listForCurrentLength);
这个想法基本上是迭代你已经得到的数组;并为那里的每个字符串...把它放到那张地图上;取决于它的长度。
(以上内容刚刚写下来;既没有编译也没有经过测试;正如所说的那样是&#34;伪代码&#34;让你前进)