2015-07-11 40 views
-1

我有一個關於在java中創建對象的問題。我是新人,我只是在做事情,然後我希望它能工作,但不幸的是,這不是。我必須從文本文件中的行創建對象。我有一條打印分離線的代碼,雖然實際上並不那麼困難,但已經花了很長時間,但現在我陷入了困境。我有5行,每行包含電視節目的名稱,開始時間,結束時間,小標題等等。我怎樣才能將這條線分成不同的對象?像program1,program2,program3這樣的對象,在對象中有標題和副標題和時間(我把它們放在代碼中,我知道它是錯的,它只是不知道如何去做)。你需要創建一個構造函數嗎? (我想你是這樣做的,但是你在括號裏面寫了什麼?)我知道很多問題,哈哈:)這就是我現在所擁有的(它會打印行,但我嘗試了一些數組,在陣列seperately線路(線路1,線路2,3,4,5),但是,其也沒有工作..:從文本文件中的行創建對象

public class split { 

public static void main(String[] args) throws IOException { 




File file = new File("/Users/-/Documents/workspace/opdracht 2/program"); 
Scanner scr = new Scanner(file); 
while (scr.hasNextLine()) { 
    String line = scr.nextLine(); 
    String[] array = line.split("\n"); 
    System.out.println(array); 


    } 
split programma1 = new split(String); 
split programma2 = new split(String); 
split programma3 = new split(String); 
split programma4 = new split(String); 
split programma5 = new split(String); 
} 

} 

三江源

回答

1

您應該首先嚐試創建一個類,它具有title,startTime,endTime等屬性作爲實例變量。

你可以有一個構造函數來接受這些變量作爲參數,或者你可以使用setter方法來獨立初始化每個成員。

1)從文件中讀取代表電視節目的行。

2)創建上述類的對象。

3)根據您選擇的方法,在構造函數或調用設置器 方法中傳遞參數。

從你問這個問題的方式來看,我建議你首先通過Java的基礎知識,而不是直接跳轉並開始編程。試着理解這些概念,然後你會發現它們很容易申請。

+1

感謝您發佈有用的建議和不發佈直接的代碼解決方案。 1 +向此答案投票。 –

0

建議:

  • 最重要的,儘量將大問題分成小步驟,然後嘗試解決每一步,一次一個,必要時單獨解決,這是你應該做的事總是適用於大型或複雜項目,或者在您尚未熟悉的編程方面進行新的工作。
  • 要做的第一件事情之一是:創建你的類的字段,包括任何字符串,int或其他需要的字段。讓它們變成非靜態的,如果它們是私人的,那麼最好。
  • 這些字段將包括電視節目名稱的字符串字段,可能是開始和結束時間的日期字段,儘管您可能希望將它們也作爲字符串保留以使事情簡單化。
  • 接下來,給你的課一個體面的構造函數,接受所有必要的字段。
  • 接下來,在您的靜態主要方法中,打開文件並在while循環中逐行讀取它。通過將每行輸出到屏幕來測試它的工作原理。它在工作後刪除測試代碼。
  • 接下來,在while循環中分割線(就像你在做的那樣)。
  • 接下來創建一個ArrayList<Split>(注意類名應該以大寫字母開頭)。在 while循環之前創建此
  • 接下來使用String#split(...)方法返回的數組填充Split對象構造函數調用的參數,創建Split對象並將其放入ArrayList<Split>。這一切都完成內部的 while循環。