2012-07-11 81 views
0

想知道,從字符串中的標題拉取信息的最佳方法是什麼。從字符串中拉取標題 - Java

我有一個類和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)); 
      } 
     } 
    } 

也就是說然而,吐出來的數組越界異常。

+0

摘要和標題是多行段落嗎?第一行怎麼樣?我們是否完全放棄第一行? – rmarimon 2012-07-11 14:25:58

+0

聽起來像作業...? – carlspring 2012-07-11 14:32:14

+0

不做作業,我是實習生。第一個包含文本的框是** 1 **字符串 – TomSelleck 2012-07-11 14:33:18

回答

1

使用掃描儀對象。

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來添加要創建的每個String的每一行。

如果你願意,我可以爲你寫,但它很簡單。

+0

感謝您的回答!我現在就試一試。 – TomSelleck 2012-07-11 14:45:41

+0

我現在只想試試這個,如果說「Summary」有多行信息,我該怎麼辦?就像我怎麼知道什麼時候停止閱讀某一特定標題的內容? – TomSelleck 2012-07-11 15:00:07

+1

我會繼續將每一行追加到StringBuffer,直到您找到一行顯示它必須結束的行。如果你的格式總是爲「Summary:somelines Heading 1:somelines」,那麼你可以直到找到等於「Heading 1:」的行。 – correcthorsebatterystaple 2012-07-11 15:02:05