【问题标题】:Java- Searching for a string in text file, then print lineJava-在文本文件中搜索字符串,然后打印行
【发布时间】:2015-09-11 10:26:54
【问题描述】:

我正在编写一个代码,用户可以在其中搜索特定字符串的文本文件(不区分大小写),它会打印找到该字符串的整行。我的代码 sn-p 在这里:

public static void search() throws FileNotFoundException
{
Scanner input = new Scanner( System.in );
int fieldNumber = 0;



if ( fieldNumber == 0 )
{
    System.out.println("Enter field value to search for: ");
    String fieldValue = input.next();
    if ("orange".equalsIgnoreCase(fieldValue))
    {
     // Here is where I am stuck. 
       {

       }

【问题讨论】:

  • 只是一个观察...您在 fieldValue 变量中从用户那里获得输入,但您似乎没有使用它。相反,您正在与字符串文字“ford”进行比较。你真正想要的是lineFromFile.toLowerCase().contains(fieldValue.toLowerCase())

标签: java string file search text


【解决方案1】:
    try
    {
        Scanner file = new Scanner(new File("file.txt"));
        String str = str.nextLine();
        System.out.print("Enter search ");
        Num = input.nextInt();

        if ( Num == 0 )
        {
            System.out.println("Enter search for: ");
            String Value = input.next();

            while (file.hasNextLine())
            {
                final String lineFromFile = file.nextLine();
                if(lineFromFile.contains(Value))
                {
                    System.out.println("file.txt");
                    System.out.println(lineFromFile);
                    break;
                }

【讨论】:

  • 这会打印字符串所在的整行吗?
  • @Paul 示例代码应该让您对搜索有所了解。我把剩下的留给你解决。
  • 请发布您的输入文件和您的输入。
  • 你的意思是.txt文件?
  • 我必须看看示例数据和您的输入。
【解决方案2】:

当扫描器读取一行时,它会给你一个字符串。

让我们看看字符串 API。 http://www.google.com/search?q=java+string+api

我想看看的方法:

indexOf(String str)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 2023-02-26
    • 1970-01-01
    • 2014-09-06
    • 2015-11-02
    相关资源
    最近更新 更多