Java 标记之间的Gettings子字符串

Java 标记之间的Gettings子字符串,java,string,parsing,split,Java,String,Parsing,Split,我读过一些关于按标签解析字符串的问题,但我没有找到我的具体问题的exaact答案。 问题:我有一大行文本。我需要根据标记将此字符串解析为多个字符串。Exmaple:我找到[tag],然后阅读文本直到[tag]出现,并将其转换为一个新字符串。然后在相同的[tag]出现之前阅读文本,并将此数据发布到新字符串中,依此类推 例如: [tag]Lorem Ipsum[tag]只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具

我读过一些关于按标签解析字符串的问题,但我没有找到我的具体问题的exaact答案。 问题:我有一大行文本。我需要根据标记将此字符串解析为多个字符串。Exmaple:我找到[tag],然后阅读文本直到[tag]出现,并将其转换为一个新字符串。然后在相同的[tag]出现之前阅读文本,并将此数据发布到新字符串中,依此类推

例如: [tag]Lorem Ipsum[tag]只是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商拿起一个打印工具,将其拼凑成一本打印样本书[tag]它不仅存活了五个世纪,而且还跨越到电子排版,基本上保持不变。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着Aldus PageMaker等桌面出版软件的发布,包括Lorem Ipsum版本

我想要基于此文本的三个字符串:Lorem Ipsum,它有,这之间的文本


使用String类的split方法。它需要正则表达式作为参数:

String allText = "some[tag]text[tag]separated[tag]by tags";
String[] textBetweenTags = allText.split("\\[tag\\]");
for (int i = 0; i < textBetweenTags.length; i++) {
    System.out.println(textBetweenTags[i]);
}
String allText=“一些[tag]文本[tag]被标记分隔开来;
字符串[]textBetweenTags=allText.split(“\\[tag\\]”);
for(int i=0;i
到目前为止,您尝试了什么?我不得不说您没有尝试过,或者没有完全阅读问题。。。OP也希望在结束和开始标记之间的文本:
[tag]foo[tag]bar[tag]baz[tag]
应该给
foo
bar
baz
他写道:“Lorem Ipsum,它有,这之间的文本”谢谢。正是我需要的。我试图使用正则表达式,但找不到到达标记之间文本的方法。所以你帮了我很多。很抱歉打扰了,但是我如何将这些字符串放入string[]数组?我的意思不是打印它们,而是放入数组。我试着做一个for()循环,但我认为我们的代码也是一个循环,所以它不起作用;然而,它却不存在;
int index = -1;

while( str.indexOf("[tag]",index+1) != -1 ) {
    String s = str.substring( index = str.indexOf("[tag]",index+1)+5, index = str.indexOf("[tag]",index) );
    System.out.println(s);
}
String txt = "[tag] Lorem Ipsum [tag] is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. [tag] It has [tag] survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.";

int index = -1;
while (true)
{
    int i = txt.indexOf("[tag]", index+1);
    if (i == -1) break;
    if (index == -1)
    {
        index = i;
    } else
    {
        System.out.println(txt.substring(index + 5, i));
        index = i;
    }

}
String allText = "some[tag]text[tag]separated[tag]by tags";
String[] textBetweenTags = allText.split("\\[tag\\]");
for (int i = 0; i < textBetweenTags.length; i++) {
    System.out.println(textBetweenTags[i]);
}