2011-11-17 68 views
1

我試圖在Java中解析文本文件。在這個文本文件中,註釋(我不想分析的東西)在行的開頭用一個「#」表示。忽略以「#」開頭的文件中的行登錄Java

我想這將是非常簡單的,是這樣的:

String line ="#hi everyone"; 

if(!line.startsWith("#")){ 
//do stuff 
} 

但它不工作。我也嘗試過使用!line.substring(0,1).equals(「#」),.contains和亂七八糟的字符和更復雜的正則表達式的東西,但沒有運氣。

我已經在調試器中看過它,並檢查以確保「行」的值實際上是正確的值。這是正確的,該行以#開頭,但它以某種方式將測試通過我的if語句。

我在這裏錯過了一些非常基本的東西嗎?

+0

工作正常。 –

+0

[你確定](http://ideone.com/PYwKS)它不工作? –

+0

你確定這是一個錯誤! 我可能是錯誤的,但你可以嘗試line.substring(0,1)=「#」 如果失敗,你可以做一個輔助字符串,其中包含第一個字母,然後只使用if語句。這應該很容易找到谷歌,對不起,我最近沒有編碼這樣的事情! – Hego555

回答

3

你試過

String line ="#hi everyone"; 

if(!line.charAt(0) == '#'){ 
//do stuff 
} 
+0

謝謝大家,它實際上是在工作,只是搞亂別的地方!當我調試時,我剛把我的斷點設置在錯誤的地方......嘆了口氣。 – user1050828

+0

它發生了。至少現在你有四種不同的方式來做你想做的事情。 –

+0

@BabakNaffas你的if語句可以用'if(line.charAt(0)!='#')'替換,這個更簡單 – Fred

2

嘗試以下方法之一:對我來說

regex: "^[ \\t]*#.*" 

line.trim().startsWith("#")