2013-09-29 34 views
1

說我有一個文本文件看起來像這樣:文字掃描並拋出一部分,我不想

"CarInLot KLM456 ND Meter4 120 

CarInLot VMK123 ME Moving 0 

CarInLot DKC003 WA Meter5 30 

Meter1 None 10 

Meter2 None 0 

Meter3 None 2 

Meter4 Yes 12" 

然後我用

while (inputFile.hasNext()) 
    { 
    // Read the next name. 
    String friendName = inputFile.nextLine(); 

    String[] tokens = friendName.split(" "); 
    } 

分裂它,但是我想要Car類在Car類中開始,行類在Meter類中開始。 我該怎麼做?謝謝。

+1

檢查第一個標記並將其與您所期望的條件進行比較。 –

回答

1

在while循環,遍歷令牌和做這樣的事情:

if (token[0].equals("CarInLot")) 
{ 
    // do something 

    // e.g. storing the variables 
    // store token[i+1] 
    // store token[i+2] 
    // Etc.. 
} else if (token[0].equals("Meter")) 
{ 
    // do something 

    // e.g. storing the variables 
    // store token[i+1] 
    // store token[i+2] 
    // Etc.. 
} 

您可以將值存儲在一個ArrayList或只是一個(2D?)array或同樣的東西...

+0

在這種情況下,'else if'會很合適。另外爲什麼索引'i'而不是'0'? –

+0

@KevinBowersox:我已經在糾正:)謝謝你的銳利 –

0

爲接受每段數據的每個對象創建構造函數作爲參數。然後檢查[]的第一個索引以確定要創建哪種類型的對象。創建該對象並將它們添加到適當類型的List

List<Meter> meters = new ArrayList<Meter>(); 
List<Car> cars = new ArrayList<Car>(); 

while (inputFile.hasNext()) 
{ 
    String[] tokens = inputFile.nextLine().split(" "); 

    if(tokens[0].equals("CarInLot")){ 
     cars.add(new Car(tokens[1], tokens[2], tokens[3], tokens[4])); 
    }else if(tokens[0].equals("Meter")){ 
     meters.add(new Meter(tokens[1], tokens[2])); 
    } 
}