从字符串中拉出标题 - Java

时间:2012-07-11 14:22:39

标签: 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 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 of bounds异常。

1 个答案:

答案 0 :(得分:1)

使用扫描仪对象。

import java.util.Scanner;

然后用它一次读取一行字符串。

Scanner sc = new Scanner(string);
sc.useDelimiter("\n");  // read one line at a time

现在sc.hasNext()告诉你是否还有行要读取,sc.next()会返回下一行。使用它一次遍历String一行。您可以测试每一行以查看它是否等于“Summary:”或“Heading 1:”等。然后您可以使用StringBuffer添加每个要创建的String的每一行。

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