【问题标题】:Ignore lines in file starting with "#" sign in Java在Java中忽略文件中以“#”开头的行
【发布时间】:2011-12-30 22:59:12
【问题描述】:

我正在尝试用 Java 解析一个文本文件。在这个文本文件中,cmets(我不想解析的东西)在行首用“#”符号表示。

我认为这会很简单,例如:

String line ="#hi everyone";

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

但它不起作用。我也尝试过使用 !line.substring(0,1).equals("#")、.contains 并弄乱了字符和更复杂的正则表达式,但没有运气。

我已经在调试器中查看并检查以确保“line”的值实际上是正确的值。这是正确的,该行以#开头,但它在我的 if 语句中以某种方式通过了测试。

我在这里错过了一些非常基本的东西吗?

【问题讨论】:

  • Are you sure 不工作?
  • 你确定这是一个错误!我可能是错的,但你可以尝试 line.substring(0,1) = "#" 如果失败了,你可以创建一个包含第一个字母的辅助字符串,然后只使用 if 语句。这应该很容易在 Google 上找到,抱歉我最近没有编写过类似的代码!

标签: java regex string char


【解决方案1】:

尝试以下任一方法:

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

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

【讨论】:

    【解决方案2】:

    你试过了吗

    String line ="#hi everyone";
    
    if(!line.charAt(0) == '#'){
    //do stuff
    }
    

    【讨论】:

    • 谢谢大家,它实际上正在工作,只是在其他地方搞砸了!我只是在调试时将断点设置在错误的位置......叹息。
    • 它发生了。至少现在你有 4 种不同的方式来做你想做的事。
    • @BabakNaffas 您的 if 语句可以替换为 if(line.charAt(0) != '#'),这样更简单
    猜你喜欢
    • 2012-05-05
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多