这是我得到的原始数据样本。我需要把特殊的零件放在excel电子表格中。在我开始之前,我想解析这些信息,以便在放入电子表格时易于管理。需要的信息之一是向量数。例如。“向量数字”"1701“。在我的生命中,我似乎不能以这样的方式使用scanner类,我可以检索这些信息,因为它在双引号中。这就是引号中的数字,并将它们保留为int值。提前感谢大家
-2-2015 0:16 PM -语音系统报告名称: Commercial l usa e 1797747
“公告”向量"“向量编号"”1701“”步骤"“8”
2015年9月2日0:16 PM -数据导出
2015.09-2-2015 0:16 PM -语音系统报告名称: Commercial l usa e 1797789
“公告”向量"“向量编号"”1701“”步骤"“26”
2015年9月2日0:16 PM -数据导出
2015.09-2-2015 0:16 PM -语音系统报告名称: Commercial l usa e 1797745
“公告”向量"“向量编号"”1701“”步骤"“3”
2015年9月2日0:16 PM -数据导出
发布于 2015-09-04 10:19:23
也许可以去掉引号,但是,您可以使用Scanner的正则表达式功能来更改它的工作方式,例如
String text = "\"\" \"\" \"\" \"\" \"\" \"Announcement\" \"\" \"\" \"\" \"\" \"Vector\" \"Vector Number\" \"1701\" \"Step\" \"8\"";
String pattern = "([\"'])(?:(?=(\\\\?))\\2.)*?\\1";
Scanner scanner = new Scanner(text);
while (scanner.hasNext(pattern)) {
System.out.println(scanner.next(pattern));
}它输出类似于...
""
""
""
""
""
"Announcement"
""
""
""
""
"Vector"使用String#replaceAll删除每个结果中的引号将是一件很简单的事情
发布于 2015-09-04 10:24:07
我建议你使用像https://commons.apache.org/proper/commons-csv/这样的CSV库。这允许您更改分隔符。
这里有many other libraries to choose from。
如果这是真实的数据,你可能会遇到很多转折点。处理所有这些问题可能会很耗时。
发布于 2015-09-04 10:19:27
假设所有数据都是这样格式化的,您可以首先使用Scanner.nextLine()获取整行数据,然后将其存储在一个字符串中。接下来,您可以使用String.indexOf()来获取您想要的数字。例如:String input = yourScanner.nextLine(); int pos = input.indexOf("Vector Number"); int result = String.substring(pos + 16, pos +20);这是你想要的东西的一个非常粗糙的实现,但是你得到了它的想法。祝好运!
https://stackoverflow.com/questions/32389039
复制相似问题