【问题标题】:How to replace the star {*} in text file with a number [duplicate]如何用数字替换文本文件中的星号 {*} [重复]
【发布时间】:2013-04-05 12:13:19
【问题描述】:

我的文本文件内容看起来像这样

慌乱的同义词:

*恐慌

*干扰

*不和谐

*混淆 ......

现在我想用数字替换 *。像这样的东西。

输出

慌乱的同义词:

1)恐慌

2)扰动

3) 不安

4) 混淆 ......

编辑:

Integer count = 1;
     File input = new File("C:\\Sample.txt");
     File output = new File("C:\\output.txt");

     BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(input)));
     Writer writer =new FileWriter(output);
      while((line=reader.readLine())!=null)
      {
          if(line.contains("*"))
          {
              line.replace("*",count.toString() );
              writer.write(line);
              count++;
          }

          else
          {
              writer.write(line);
          }
      }

这是我在这里发布问题之前尝试过的。但这似乎不起作用。 现在有人可以帮帮我吗?

【问题讨论】:

  • How-how:用 Java 写一个程序
  • 搜索 (\*) 并替换为 (\\d+)(\))
  • @Ons (\\d+)(\)) 是什么?

标签: java regex


【解决方案1】:

你应该写一个 JAVA 程序。

这里有一些可以帮助你入门的东西(粗略的代码):

BufferedReader br = new BufferedReader(new FileReader(file));

//start reading file line-by-line
while ((line = br.readLine()) != null) {

    //replace * with whatever you want
    // Use a counter to keep track of lines to give corresponding line number
    String val = line.replace("*",counterVar.toString());

}
br.close();

再次使用BufferedWriter 写回文件,如果您愿意,可以使用PrintWriter 包装它,

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("outputfile")));

【讨论】:

  • 能否请您查看编辑代码并指出我哪里出错了..?
【解决方案2】:

试试这样的(未经测试的代码):

try{
       List<String> lines = Files.readAllLines(fileName, Charset.defaultCharset());
        for (int i = 0; i< lines.size(); i++) {
            lines.set(i, lines[i].replace("*", String.valueOf(i)));
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
 ...//Then save the file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2015-03-31
    • 2023-03-14
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多