2012-02-01 56 views
0

我有以下的文件,我使用的是作爲一個測試:檢測如果掃描儀沒有下一步

ID = 1392
名=彌敦道
性別=男性
testempty =
testempty2 =
郵編= 11111

我循環線和調用函數processLine(String line)他們來處理Strings

private String processLine(String line) { 
    Scanner scanner = new Scanner(line); 
    StringBuilder result = new StringBuilder(); 
    scanner.useDelimiter("="); 

    if (scanner.hasNext()) { 
     result.append(scanner.next()); 
     result.append(" , "); 
     result.append(scanner.next()); 
     result.append(" , "); 
    } 

    return result.toString(); 
} 

但我怎麼可以檢測,如果沒有下一個(上testempty等),並做了result.append("empty , ")

+1

如果我是你,我會逐行讀取文件中的行,併爲每一行使用'line.split('\\小號* = \\ s *',2)'得到令牌。 – NPE 2012-02-01 16:13:34

+2

我想你可以使用java.util.Properties來解析你的文件。 – 2012-02-01 16:15:38

+0

@JackEdmonds我想轉換代碼,所以我現在可以使用'java.util.Properties',但是我怎樣才能得到屬性列表並將它們轉換爲'String []'? – 2012-02-01 16:54:52

回答

1

(我想這是你所要求的)

更改線路:

result.append(scanner.next()); 

到:

result.append(scanner.hasNext() ? scanner.next() : "empty"); 
1

改變你的方法。如果結果不是空的附加價值之前追加「」:

if (scanner.hasNext()) { 
    if (!result.isEmpty()) { 
    result.append(" , "); 
    } 
    result.append(scanner.next()); 
    result.append(" , "); 
    result.append(scanner.next()); 
}