【发布时间】:2013-06-26 16:56:38
【问题描述】:
我几乎搜索了 Stackoverflow 上的所有页面,但仍未找到如何执行此操作。我有以下字符串(正在从文件中解析):
f: (matchQuan
(Recipe
(Unique FoodType "slurpee" "xxx-xxx-eee-ddd"))
(Unique IngredType "slurpee" "qqq-rrr-sss") "slurpee"
(Cup-Vol 12)).
现在,我想再次解析此字符串并提取字符串matchQuan、slurpee、字符串Unique 和FoodType 和Recipe 以及ID 号,即xxx-xxx-eee-ddd。
我将如何从单个字符串中进行多次提取来做这样的事情?我不能使用Scanner.next() 我不相信,因为它会前进到字符串中的下一个标记。
谢谢!
【问题讨论】:
-
提取物是什么意思?你想子串吗?
-
您可以使用
Scanner.next()遍历您的字符串标记并将它们存储在像 List- > 这样的容器中,然后如果格式没有改变,您可以通过这样做获得
matchQuanlist.get(0).get(0)。你知道我要做什么了吗? -
是的,很抱歉不清楚。我要从这个字符串中生成多个单独的子字符串。
-
@Adrian 在第一个引用中(即 slurpee)不能保证它总是一个单词。所以简单地使用
.next并不总能产生我想要的结果。我将如何处理? -
@RichieEpiscopo 我不认为你理解我之前所说的。您应该将数据存储在某种类型的
List中,而不是一直使用.next()。或者尝试制作一个小型 DFA 来解析您的输入。