现在有如下需求:
一个号码文件,形如:
13000000000
13000000001
......
一个号段文件,形如:号段|省份|城市
135010,北京,北京
。
比如输入一个条件,过滤掉内蒙的号段。请问如何快捷实现,看看大家没有做过类似需求的经验可分享的。
不用数据,只用java实现。本人只能想到遍历。
静候佳音,欢迎沟通。
一个号码文件,形如:
13000000000
13000000001
......
一个号段文件,形如:号段|省份|城市
135010,北京,北京
。
比如输入一个条件,过滤掉内蒙的号段。请问如何快捷实现,看看大家没有做过类似需求的经验可分享的。
不用数据,只用java实现。本人只能想到遍历。
静候佳音,欢迎沟通。
或者写个bat脚本
for /f "tokens=1,* delims=, " %%i in ('findstr 内蒙 号段文件') do (
findstr -v %%i 号码文件 >> tmp.txt
)
然后读取tmp.txt
就可以比较快的过滤掉
Scanner sc = new Scanner(new FileInputStream("号段文件"));
List<String> filter = new ArrayList<String>();
while (sc.hashNextLine()) {
String buf = sc.nextLine();
if (buf.matches("\\d+,.*?内蒙.*")) {
filter.add(buf.split(",")[0]);
}
}
sc.close();
Scanner sc = new Scanner(new FileInputStream("号码文件"));
List<String> number = new ArrayList<String>();
while (sc.hashNextLine()) {
String buf = sc.nextLine();
boolean flag = false;
for (String f : filter) {
if (buf.startsWith(f)) {
flag = true;
break;
}
}
if (!flag) number.add(buf);
}
sc.close();