我有一个.txt文件,看起来像这样(只是示例):
sfafsaf102030
asdasa203040
asdaffa304050
sadasd405060
我正在尝试获得包含特定(由我给出)数字的整行,例如我有数字" 203040"我希望收到" asdasa203040"。
我试过这样的事情:
File file = new File("file.txt");
Scanner sc = new Scanner(file);
String pattern = "(.*)(\\d+)";
Pattern p = Pattern.compile(pattern);
System.out.println(sc.findInLine(pattern));
但它只给我一行任何数字,而不是我指定的那一行。如何改变?
感谢。
答案 0 :(得分:0)
您不需要为此使用正则表达式。您只需检查包含您输入的号码的行:
File file = new File("file.txt");
Scanner sc = new Scanner(file);
Scanner input = new Scanner(System.in);
System.out.println(/*prompt user for input here*/);
String number = input.next();
String line;
while (sc.hasNextLine()) {
line = sc.nextLine();
if (line.contains(number)) {
System.out.println(line);
break;
} else if (!sc.hasNextLine()) {
System.out.println("Line not found.");
}
}