从字符串中提取标题-Java

从字符串中提取标题-Java,java,string,parsing,Java,String,Parsing,只是想知道,从字符串中的标题中提取信息的最佳方式是什么 我有一个类和getter方法用于标题(摘要,标题1,标题2) 比如说, 如果我有一个等于的字符串 This: is the first line of a String: xx-string: This is a long String Summary: This is the summary of the String Heading 1: This is the first heading Heading 2: This is a

只是想知道,从字符串中的标题中提取信息的最佳方式是什么

我有一个类和getter方法用于标题(摘要,标题1,标题2)

比如说,

如果我有一个等于的字符串

This: is the first line of a String: xx-string: This is a long String

Summary:
This is the summary of the String

Heading 1:
This is the first heading

Heading 2:
This is another heading
设置字符串值的理想方法是什么

摘要,标题1,标题2

谢谢

编辑

这就是我想要的

 public void setHeadings(Data fileData) {
        String description = fileData.getDescription();
        //String [] headings = description.split(":");

        int indexOf;
        indexOf = description.indexOf("Summary");
        if(indexOf != -1)
        {
            String subString = description.substring(indexOf);
            int indexOfNextHeading = subString.indexOf(":");
            if(indexOfNextHeading != -1)
            {
                System.out.println(indexOf + ":" + indexOfNextHeading);
                setSummary(description.substring(indexOf,indexOfNextHeading-1));
                System.out.println(description.substring(indexOf,indexOfNextHeading));
            }
        }
    } 
但是,这会抛出一个数组越界异常。

使用Scanner对象

import java.util.Scanner;
然后使用它一次读取一行字符串

Scanner sc = new Scanner(string);
sc.useDelimiter("\n");  // read one line at a time
现在sc.hasNext()告诉您是否还有行要读,sc.next()返回下一行。使用此选项一次遍历一行字符串。您可以测试每一行,看看它是否等于“Summary:”或“Heading 1:”,等等。然后,您可以使用StringBuffer从要创建的每个字符串中添加每一行


如果你愿意,我可以为你写这篇文章,但它相当简单。

摘要和标题是多行段落吗?第一行怎么样?我们是不是把第一行都删掉了?听起来像是作业…?不是作业,我是实习生。第一个文本框是一串,谢谢你的回答!我现在就来试试。我现在就来试试,如果说“摘要”包含多行信息,我该怎么办?例如,我如何知道何时停止读取特定标题的行?我会继续将每一行附加到StringBuffer,直到出现一行,显示它必须已结束。如果您的格式始终为“摘要:某些行标题1:somelines”,那么您可以一直走到找到一行等于“标题1:”。不幸的是,这种格式并不总是这样,有些标题可能不存在。。有什么建议吗?你只需要找到一些所有文档都有的标志,这些标志将不同的部分分开,然后寻找它们。也许总是有一个空白行分隔部分。可能行只在节的开头以冒号结尾。
Scanner sc = new Scanner(string);
sc.useDelimiter("\n");  // read one line at a time