如何使用扫描仪(java)处理它?
请问我关于扫描仪的问题;我在一家小公司工作;我们有一个软件;它生成一个大文本文件;而且我们必须从中得到一些有用的信息;
我想用Java编写一个简单的应用程序以节省时间;你能指导我吗?
例如我要这个输出;
输出量
RFID:25蓝色:562 WifiID:2610 RFID:33
RFID数量:2
例如;这是我的文本文件,因为使用我们的软件生成的每个文件都有14000行:)
--------------------------AAAAAAAAAAAA;RFID=25;
BBBB;BBBBBBBB;BBBBBBBBBB;
CCCCC;fffdsfdsfdfsd;BLUID=562;dfsdfsf;
fgfdgdf;terter;fdgfdgtryt;
trtretrre;WifiID=2610;trterytuytutyu;
zxzxzxzxz;popopopwwepp;RFID:33;aasasds…
gfdgfgfd;gfdgfdgfd;fdgfgfgfd;
回答:
Scanner scanner = new Scanner("i:\1.txt");scanner.findInLine("RFID=");
if (scanner.hasNext())
System.out.println(scanner.next());
else
System.out.println("Error!");
请帮我 ;
非常感谢 …
回答:
好吧,您建议的来源不会做您想要的。扫描仪使用定界符分隔输入。默认的分隔符是空格(空格,制表符或换行符)。Scanner.hasNext()只是告诉您是否存在新的空白脱机令牌。Scanner.next()仅返回该令牌。请注意,这些都不受Scanner.findInLine(pattern)的影响,因为它所做的只是在当前行中搜索提供的模式。
也许是这样的(我还没有测试过):
Scanner scanner = new Scanner("i:\\1.txt");scanner.useDelimiter(";");
Pattern words = Pattern.compile("(RFID=|BLUID=|WifiID=)");//just separate patterns with |
while (scanner.hasNextLine()) {
key = scanner.findInLine(words);
while (key != null) {
String value = scanner.next();
if (key.equals("RFID=") {
System.out.print("RFID:" + value);
} //continue with else ifs for other keys
key = scanner.findInLine(words);
}
scanner.nextLine();
}
我建议您不要使用扫描仪,而只使用BufferedReader和几个Pattern对象,因为该方法对于您想做的事情更加灵活。
以上是 如何使用扫描仪(java)处理它? 的全部内容, 来源链接: utcz.com/qa/421845.html