Java使用不同格式(100,50或100.50)搜索给定数字的.txt文件

时间:2017-03-29 09:51:29

标签: java file search wildcard

我想在给定的txt文件中搜索数字并返回找到它的行。此号码可以有不同的格式。它可以用,或写。或者完全不同的东西。我知道输入数字总是这样:100.50; 3424.00; 0.12 ......

我的当前代码仅在没有其他字符的行中检测到这些数字。 代码将数字分为两部分(100.50 - > front:100和back:50)。然后我添加了通配符"。"并使用方法匹配(前+"。" +后退)

如果数字不在数字范围内,我怎么能找到这个数字?

感谢您的帮助!

private static int searchTotal(String pictureID, String value) throws IOException {

    int counter = 0;
    String front = value.substring(0, value.length() - 3);   //dividing the value into 100,50 -> 100 and 50
    String back = value.substring(value.length() - 2);

    BufferedReader br = new BufferedReader(
            new FileReader(pathTXTFiles + "/" + pictureID +".txt")); //input txt
    String s;

    while ((s = br.readLine()) != null) {
        counter++;
        if (s.matches(front + "." + back)) { //searching with the wildcard
            return counter;         //counter gives me the line of the searched number
        }
    }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您必须在之前和之后允许其他字符:

s.matches(".*"+front + "[.,]" + back+".*");

否则matches仅在该行仅由一个十进制数组成时才返回true。