如何使用扫描仪(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

回到顶部