如何从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;
}
}
}
答案 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));
}
}