创建用于在java中搜索确切数字的模式

时间:2016-05-03 17:13:24

标签: java

我有一个.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));

但它只给我一行任何数字,而不是我指定的那一行。如何改变?

感谢。

1 个答案:

答案 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.");
    }
}