在文件中查找单词,然后用java打印包含该单词的行

使用命令行,我应该输入一个包含文本的文件名并搜索特定的单词。


foobar 文件.txt


我开始编写以下代码:


import java.util.*;

import java.io.*;


class Find {

    public static void main (String [] args) throws FileNotFoundException {

        String word = args[0];

        Scanner input = new Scanner (new File (args[1]) );

        while (input.hasNext()) {

            String x = input.nextLine();    

        }

    }

}

我的程序应该找到单词,然后打印包含它的整个行。请具体说明,因为我是Java的新手。


梵蒂冈之花
浏览 76回答 2
2回答

撒科打诨

您已经在读取文件的每一行,因此使用该方法将是您的最佳解决方案String.contains()if (x.contains(word) ...如果给定的包含您传递给它的字符序列(或字符串),则该方法只是返回。contains()trueString注意:此检查区分大小写,因此,如果要检查该单词是否存在任何大小写组合,只需先将字符串转换为相同的大小写:if (x.toLowerCase().contains(word.toLowerCase())) ...所以现在这里有一个完整的例子:public static void main(String[] args) throws FileNotFoundException {    String word = args[0];    Scanner input = new Scanner(new File(args[1]));    // Let's loop through each line of the file    while (input.hasNext()) {        String line = input.nextLine();        // Now, check if this line contains our keyword. If it does, print the line        if (line.contains(word)) {            System.out.println(line);        }    }}

繁花不似锦

首先,您必须打开文件,然后逐行读取它,并检查该单词是否在该行中。class Find {    public static void main (String [] args) throws FileNotFoundException {          String word = args[0]; // the word you want to find          try (BufferedReader br = new BufferedReader(new FileReader("foobar.txt"))) { // open file foobar.txt          String line;          while ((line = br.readLine()) != null) { //read file line by line in a loop             if(line.contains(word)) { // check if line contain that word then prints the line                  System.out.println(line);              }           }       }    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java