0

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

我有一个用于标题的类和 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

Summary = This is the summary of the String
Heading 1 = This is the first heading
Heading 2 = This is another heading

谢谢 !!

编辑

这就是我想要的,

 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));
            }
        }
    } 

然而,这会吐出一个 Array Out of bounds 异常。

4

1 回答 1

1

使用 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 从您要创建的每个字符串中添加每一行。

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

于 2012-07-11T14:42:22.513 回答