如何在JAVA中的文本文件中查找字符串

高级佩佩

我只想看一个带有一些解释的示例。我使用什么字符串函数来比较对象,它是否比较每个字符或实际单词而没有任何其他字母?

谢谢

亚历克斯·斯温福德

不久前,我尝试为一个项目做与这个问题非常相似的事情。在 Java 中有很多方法可以做到这一点,但我使用了 Scanner 类和 File 类。

public static void main(String[] args)
{
    Scanner input = new Scanner(System.in);      //Just a normal scanner

    System.out.println("Please enter in the pathname to the file you want to view.");
    String pathname = input.nextLine();          //Pathname to text file
    File book = new File(pathname);              //Creating a new file using the pathname

    if(book.canRead() == false)                  //If Java cant read the file, this will pop up
    {
        System.out.println("Your file cannot be read");
    }
    else if(book.canRead() == true)              //If Java can read the file, then this asks for the word to search for
    {
        System.out.println("Please enter in the word you wish to search for.");
        wordToSearchFor = input.nextLine();

        wordCounter(book);                        //Calls the method
  }

  System.out.println(wordToSearchFor.toLowerCase() + " appeared " + numOfOccurrences + " times in " + pathname);

}

这是您使用 File 类根据您提供的路径名创建文件的主要方法 EX - C:\Users\alex\Downloads\mobydick.txt 然后我检查您是否可以读取该文件,如果可以的话,我会调用一个方法来分析这本书本身

import java.io.*;
import java.util.Scanner;

public class TextReader
{
    private static int numOfOccurrences;         //Counter to keep track of the number of occurances
    private static String wordToSearchFor;       //String field so both methods can access it

    /*
    * This method takes in the file of the book so the scanner can look at it
    * and then does all of the calculating to see if the desired word appears,
    * and how many times it does appear if it does appear
    */

    public static void wordCounter(File bookInput)
    {
        try                                         
        {                                               
            Scanner bookAnalyzer = new Scanner(bookInput);     //Scanner for the book

            while(bookAnalyzer.hasNext())                      //While the scanner has something to look at next
            {
                String wordInLine = bookAnalyzer.next();        //Create a string for the next word

                wordInLine = wordInLine.toLowerCase();          //Make it lowercase
                String wordToSearchForLowerCase = wordToSearchFor.toLowerCase();
                String wordToSearchForLowerCasePeriod = wordToSearchForLowerCase + ".";

                if(wordInLine.indexOf(wordToSearchForLowerCase) != -1 && wordInLine.length() == wordToSearchFor.length())
                {
                    numOfOccurrences++;
                }
                else if(wordInLine.indexOf(wordToSearchForLowerCasePeriod) != -1 && wordInLine.length() == wordToSearchForLowerCasePeriod.length())
                {
                    numOfOccurrences++;
                }
            }
        }

        catch(FileNotFoundException e)               //Self explanitory
        {
            System.out.println("The error is FileNotFoundException - " + e);
            System.out.println("This should be impossible to get to because error checking is done before this step.");
        }
    }

Java中的扫描器可以拿一个File对象来分析,这是我在这个方法中做的第一件事。然后我使用一个 while 循环并询问扫描器是否在当前词之后有一个词。只要有一个字,这就会继续运行。然后我创建一个当前单词的字符串,扫描仪将其用作比较的参考。然后我使用 String 类附带的方法将所有内容变为小写,因为大写和小写字母都很重要。

此方法中的第一个 if 语句使用 String 类中的 indexOf 方法检查扫描器当前拥有的单词是否与您正在搜索的词匹配,该方法获取一些字符串并查看它是否存在于另一个字符串中。if 语句比较还确保所需的字长与书中的字长相同,以防您查找“the”并且它不会将“then”标记为单词,因为它包含“the”。第二个 if 语句做同样的事情,只是在你想要的单词末尾加上一个句点。如果您想加倍努力,您还可以检查感叹号、问号、逗号等,但我决定只检查句点。

每当其中一个 if 语句正确时,我将变量加 1,在扫描仪用完要搜索的单词后,我会打印出某个单词在文本文件中出现的总次数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从文本文件中查找字符串并加载其行内容

来自分类Dev

在巨大的文本文件中查找字符串

来自分类Dev

批处理-在文本文件中查找字符串并删除整行

来自分类Dev

如何在文本文件中grep查找包含逗号的以行分隔的字符串?

来自分类Dev

在大文本文件中查找字符串中子字符串的最后一次出现

来自分类Dev

BATCH-在文本文件中查找字符串,然后在该行之后添加新的字符串

来自分类Dev

如何使用Java在文本文件中查找和分隔字符串值?

来自分类Dev

如何使用Java查找和分隔文本文件中的字符串值?

来自分类Dev

Python-在文本文件中查找字符串列表的字符串频率

来自分类Dev

在文本文件打印行中查找字符串到新文件 Python 2.7

来自分类Dev

在通配符文件中查找字符串,如果找不到字符串,则将文件名放在文本文件 CMD 上

来自分类Dev

如何在文本文件中的包含字符串的行的末尾添加文本?

来自分类Dev

如何在C中替换文本文件中的字符串/短语

来自分类Dev

如何在vb.net中的文本文件中读取重复的字符串

来自分类Dev

如何在Java中将扩展的ASCII字符作为字符串读/写到ANSI编码的文本文件中

来自分类Dev

在文本文件上查找字符串-批处理文件

来自分类Dev

如何在文本文件中获取特定字符串

来自分类Dev

如何在文本文件中搜索字符串并根据结果执行特定操作

来自分类Dev

如何在 Oracle 中添加字符串并使用该字符串名称创建文本文件

来自分类Dev

如何在文本文件中查找字符并将该字符后的单词保存到另一个文件

来自分类Dev

在Perl中查找并替换文本文件中的字符串

来自分类Dev

查找包含文本文件的文件夹中是否存在字符串

来自分类Dev

如何搜索字符串并替换文本文件中的字符串?

来自分类Dev

如何在文本文件中的某个字符串之后从python中的文本文件中提取数据?

来自分类Dev

使用Power Shell在文本文件中查找和替换字符串

来自分类Dev

Python:在文本文件中搜索字符串后查找值

来自分类Dev

Linux:从字符串输入中查找文本文件

来自分类Dev

遍历文本文件并查找要附加到与层次结构相关的文本文件中的子字符串的字符串

来自分类Dev

如何在文件/字符串中查找字符串之间的字符串数-python

Related 相关文章

  1. 1

    如何从文本文件中查找字符串并加载其行内容

  2. 2

    在巨大的文本文件中查找字符串

  3. 3

    批处理-在文本文件中查找字符串并删除整行

  4. 4

    如何在文本文件中grep查找包含逗号的以行分隔的字符串?

  5. 5

    在大文本文件中查找字符串中子字符串的最后一次出现

  6. 6

    BATCH-在文本文件中查找字符串,然后在该行之后添加新的字符串

  7. 7

    如何使用Java在文本文件中查找和分隔字符串值?

  8. 8

    如何使用Java查找和分隔文本文件中的字符串值?

  9. 9

    Python-在文本文件中查找字符串列表的字符串频率

  10. 10

    在文本文件打印行中查找字符串到新文件 Python 2.7

  11. 11

    在通配符文件中查找字符串,如果找不到字符串,则将文件名放在文本文件 CMD 上

  12. 12

    如何在文本文件中的包含字符串的行的末尾添加文本?

  13. 13

    如何在C中替换文本文件中的字符串/短语

  14. 14

    如何在vb.net中的文本文件中读取重复的字符串

  15. 15

    如何在Java中将扩展的ASCII字符作为字符串读/写到ANSI编码的文本文件中

  16. 16

    在文本文件上查找字符串-批处理文件

  17. 17

    如何在文本文件中获取特定字符串

  18. 18

    如何在文本文件中搜索字符串并根据结果执行特定操作

  19. 19

    如何在 Oracle 中添加字符串并使用该字符串名称创建文本文件

  20. 20

    如何在文本文件中查找字符并将该字符后的单词保存到另一个文件

  21. 21

    在Perl中查找并替换文本文件中的字符串

  22. 22

    查找包含文本文件的文件夹中是否存在字符串

  23. 23

    如何搜索字符串并替换文本文件中的字符串?

  24. 24

    如何在文本文件中的某个字符串之后从python中的文本文件中提取数据?

  25. 25

    使用Power Shell在文本文件中查找和替换字符串

  26. 26

    Python:在文本文件中搜索字符串后查找值

  27. 27

    Linux:从字符串输入中查找文本文件

  28. 28

    遍历文本文件并查找要附加到与层次结构相关的文本文件中的子字符串的字符串

  29. 29

    如何在文件/字符串中查找字符串之间的字符串数-python

热门标签

归档