2011-11-17 64 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("#")