【问题标题】:How to print certain lines from a file that begin and end with a conditional string如何从文件中打印以条件字符串开头和结尾的某些行
【发布时间】:2011-10-26 10:07:59
【问题描述】:

我有一个这样的 .txt 文件:

[abc]
There is 
a lot of
contents here 
[abc]

[def]
Here are 
many other
contents
[def]

[ghi]
and bunch of 
contents here too
[ghi]

我想打印出标记字符串之间的内容,例如:打印出[abc]和[abc]之间的所有内容,而不打印出任何[abc]行。我怎么能做到这一点?

【问题讨论】:

  • 如果所有标记行都以[ 开头,并且没有其他内容行以[ 开头,则过滤所有以[ 开头的行。正则表达式应该是这样的 ^[.*$ 多行模式
  • 你达到你想要的了吗?

标签: java string file-io java.util.scanner


【解决方案1】:

用一个布尔标志在一个简单的时候就可以做到

boolean printing=false;
while((line=in.readLine())!=null){
    if(line.startsWith("[abc]"){
        printing=!printing;
    }else if (printing){
        System.out.println(line);
    }
}

【讨论】:

    【解决方案2】:

    使用缓冲阅读器和文件阅读器进行输入。 遍历输入行并根据您的条件使用 string.equals(string 方法)。 不给你写代码

    if (readline) // for opening tag
        while (readline)
            printline
            if (readline) // for closing tag
                break;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-03
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      • 1970-01-01
      • 2011-01-16
      相关资源
      最近更新 更多