import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); Map<String, List<Integer>> map = new HashMap(); int n = 0; List<String> lines = new ArrayList<>(); while (true) { String line = in.nextLine(); if (line.equals("!!!!!")) break; n++; lines.add(line); String[] words = line.split(" "); for (String word : words) { if (map.containsKey(word)) { if (map.get(word).contains(n)) continue; map.get(word).add(n); } else { List<Integer> index = new ArrayList<>(); index.add(n); map.put(word, index); } } } List<Map.Entry<String, List<Integer>>> list = new ArrayList<>(map.entrySet()); Collections.sort(list, Comparator.comparing(Map.Entry::getKey)); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } while (true) { String[] keys = in.nextLine().split(" "); List<List<Integer>> index = new ArrayList<>(); for (int i = 0; i < keys.length; i++) { for (int j = 0; j < list.size(); j++) { if (list.get(j).getKey().equals(keys[i])) { index.add(list.get(j).getValue()); } } } if (index.size() == 0) { System.out.println("found 0 results"); continue; } List<Integer> result = index.get(0); if (keys.length >= 2) { for (int i = 1; i < index.size(); i++) { result.retainAll(index.get(i)); } if (result.size()==0){ System.out.println("found 0 results"); continue; } } System.out.println(result); for (int i : result) { System.out.println("line "+i+":"+lines.get(i-1)); } } } }
时间: 2024-02-15 07:27:19 浏览: 310
这是一段 Java 代码,它实现了一个简单的文本搜索功能。用户可以输入多行文本,程序会将每个单词与所在的行数存储在一个 HashMap 中。用户可以输入多个关键词,程序会返回包含所有关键词的行号。如果没有找到任何匹配,程序会输出 "found 0 results"。如果找到了匹配的行,程序会输出行号和具体的文本内容。
相关问题
扩展代码javaimport java.util.*;public class Main { public static void main(String[] args) { Sc
当然,您提供的代码片段似乎是一个简单的Java程序,它导入了`java.util.*`包,然后定义了一个名为`Main`的公共类,包含一个`main`方法。在这个例子中:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建Scanner对象,用于接收用户输入
System.out.println("请输入一些整数,以逗号分隔:"); // 输出提示信息
List<Integer> numbers = new ArrayList<>(); // 创建一个ArrayList来存储整数
while (scanner.hasNextInt()) { // 当有整数输入时
numbers.add(scanner.nextInt()); // 将输入的整数添加到列表中
}
System.out.println("你输入的整数是: " + numbers); // 输出用户输入的所有整数
scanner.close(); // 关闭Scanner对象
}
}
```
这个程序的主要功能是从用户那里获取一系列的整数,并将它们存储在一个列表中。用户可以通过命令行输入整数,用逗号作为分隔。
如果你需要关于这个代码的进一步解释或者有其他问题,比如如何修改它、或者它的工作原理,请告诉我,我会很乐意帮助你。
import java.io.*; import java.util.Arrays; import java.util.Scanner; public class FileTest { public static void main(String[] args) throws IOException { // 接收给定的一行字符串 Scanner scanner = new Scanner(System.in); String line = scanner.nextLine();
// 创建文件对象,并检查文件是否存在 File file = new File(line); if (!file.exists()) { System.out.println("文件不存在!"); return; } // 读取文件内容 BufferedReader reader = new BufferedReader(new FileReader(file)); String content = ""; String temp; while ((temp = reader.readLine()) != null) { content += temp + "\n"; } // 关闭文件读取器 reader.close(); // 输出文件内容 System.out.println("文件内容:\n" + content); } }
这段代码是一个读取文件并输出文件内容的Java程序。首先,通过Scanner接收用户输入的文件路径,然后判断文件是否存在。如果文件不存在,则输出提示信息并结束程序。如果文件存在,则创建文件读取器并读取文件内容,将读取到的内容存储在一个字符串变量中。最后,关闭文件读取器并输出文件内容。
阅读全文