Java扫描定界符-从单个字符串中提取多个子字符串

Java扫描定界符-从单个字符串中提取多个子字符串,java,string,io,split,Java,String,Io,Split,我几乎搜索了Stackoverflow上的所有页面,但仍然没有找到如何做到这一点。我有以下字符串(正在从文件中解析): 现在,我想再次解析这个字符串并提取字符串matchQuan,slurpee,字符串Unique和FoodType和Recipe以及ID号,即xxx xxx eee ddd 我如何从一个字符串中多次提取这样的内容?我不能使用Scanner.next()我不相信,因为它会前进到字符串中的下一个标记 谢谢 这对你有帮助吗 public static void getString()

我几乎搜索了Stackoverflow上的所有页面,但仍然没有找到如何做到这一点。我有以下字符串(正在从文件中解析):

现在,我想再次解析这个字符串并提取字符串
matchQuan
slurpee
,字符串
Unique
FoodType
Recipe
以及ID号,即
xxx xxx eee ddd

我如何从一个字符串中多次提取这样的内容?我不能使用Scanner.next()我不相信,因为它会前进到字符串中的下一个标记


谢谢

这对你有帮助吗

public static void getString() {
    String str = "f:   (matchQuan " +
                      "(Recipe "+
                      "(Unique FoodType" + " slurpee"+ " xxx-xxx-eee-ddd"+
                      "(Unique IngredType"+ " slurpee"+ " qqq-rrr-sss"+" slurpee" +
                       " (Cup - Vol 12)).";
    String newStr=str.replaceAll("\\(","").replaceAll("\\)","");
    String[] arrStr=newStr.split(" ");
    for (int i=0;i<arrStr.length;i++){
        System.out.println(arrStr[i]);
    }

}
publicstaticvoid getString(){
String str=“f:(matchQuan”+
“(配方”+
“(唯一食物类型“+”slurpee“+”xxx xxx eee ddd”+
“(唯一IngredType”+“slurpee”+“qqq rrr sss”+“slurpee”+
“(世界杯-第12卷”);
字符串newStr=str.replaceAll(“\\(“,”).replaceAll(“\\)”,”);
字符串[]arrStr=newStr.split(“”);

对于(int i=0;i提取是什么意思?您想要子字符串吗?您可以使用
Scanner.next()
迭代字符串标记并将其存储在类似列表的容器中,如果格式没有更改,您可以通过执行
List.get(0).get(0)来获取
matchQuan
。你知道我要说什么吗?是的,很抱歉不清楚。我要从这个字符串中生成多个单独的子字符串。@Adrian在第一个引号中(即slurpee)无法保证它总是一个单词。因此,简单地使用
。next
并不总能产生我想要的结果。我该如何处理这个问题?@RichieEpiscopo我想你不明白我之前说的话。你应该将数据存储在某种类型的
列表中,而不要使用
。next()
一直都是。或者试着做一个小的DFA来解析你的输入。告诉我你是否在寻找一个不同的东西。我这样得到了你的问题哦,这真的让我对
拆分()大开眼界了
method——我以前不知道有这个方法。我将在我的实现中使用它。一个问题:为什么需要这一行:
newStr=str.replaceAll(“\\(”,”).replaceAll(“\\”,”);
?删除()brackets@RichieEpiscopo这就是你想要的答案吗?
public static void getString() {
    String str = "f:   (matchQuan " +
                      "(Recipe "+
                      "(Unique FoodType" + " slurpee"+ " xxx-xxx-eee-ddd"+
                      "(Unique IngredType"+ " slurpee"+ " qqq-rrr-sss"+" slurpee" +
                       " (Cup - Vol 12)).";
    String newStr=str.replaceAll("\\(","").replaceAll("\\)","");
    String[] arrStr=newStr.split(" ");
    for (int i=0;i<arrStr.length;i++){
        System.out.println(arrStr[i]);
    }

}