如何从文本文件java中间隔前得到第一个单词?

时间:2017-05-16 05:35:49

标签: java

如何从list.txt获取第一个单词?当我插入“45”时将搜索并显示“45 toyota camry”

list.txt的这个例子

45 toyota camry
26 honda jazz
13 honda accord
65 nissan bluebird

这是我的代码

public static void main(String[] args) throws IOException {
    String data = new String();

    File input = new File ("list.txt");
    String read = null;
    List<String> words = new ArrayList<String> (Arrays.asList()); 
    LinkedList<String> list = new LinkedList<String>();

    Scanner in = new Scanner(System.in);
    System.out.print("\nEnter your code car : ");
    data =in.nextLine();
    Scanner typescan; // Not used
    BufferedReader filescan;

    filescan = new BufferedReader(new FileReader("list.txt"));
    String line = data;

    while((line = filescan.readLine()) != null) {    
        if(line.equals(data)) { 
            System.out.print(line);
            break;
        } else {
            System.out.print("Sorry, could not find it.");
            break;
        }
    }
}

3 个答案:

答案 0 :(得分:1)

您可以使用String#startsWith。例如,

boolean b = true; 
while((line = filescan.readLine()) != null) {    
    if(line.startsWith(data)) { 
        System.out.print(line);
        b = false;
        break;
    }
}
if(b)
    System.out.println("Sorry, Not found");

答案 1 :(得分:0)

要读取文件中的下一个标记,请使用java.util.Scanner而不是BufferedReader。这是代码:

package com.stackoverflow.main;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
        File input = new File ("C://foo.txt");
        String read = null;
        List<String> words = new ArrayList<String> (Arrays.asList()); 
        LinkedList<String> list = new LinkedList<String>();

        Scanner in = new Scanner(System.in);
        System.out.print("\nEnter your code car : ");
        String data = in.nextLine();
        Scanner typescan; // Not used
        Scanner filescan;

        filescan = new Scanner(input);
        String line = data;

        while(filescan.hasNext()) {
            line=filescan.next();
            if(line.equals(data)) { 
                System.out.print(line);
                break;
            } else {
                System.out.print("Sorry, could not find it.");
                break;
            }
        }
    }
}

打印:

Enter your code car : 45
45

现在扫描仪读取45但不是整行。

答案 2 :(得分:0)

假设您已将文件读入变量text并从变量input中获取用户编号,您可以这样做:

public static void main(String[] args) {
    String text = "45 toyota camry\n" +
                  "26 honda jazz\n" +
                  "13 honda accord\n" +
                  "65 nissan bluebird";
    String input = "45";
    Matcher matcher = Pattern.compile("(" + input + ".*)(\n.*)*").matcher(text);
    if (matcher.matches()) {
        System.out.println(matcher.group(1));
    }
}