【问题标题】:Replacing contents of a String using replaceFirst() [duplicate]使用 replaceFirst() 替换字符串的内容 [重复]
【发布时间】:2023-03-15 00:41:01
【问题描述】:

我有一个包含以下内容的文件:

Test:Line1@line.com
Goal:[[goal]]
Email:[[email]]
Further Text

以下是将文件内容放入 StringBuffer 并将值放入 String output 的代码。

Path signature = Paths.get("signature.txt");
StringBuffer sigBuffer = new StringBuffer();
String line = null;
BufferedReader reader = null;
try {
 reader = Files.newBufferedReader(signature);
 while ((line = reader.readLine()) != null) {
   sigBuffer.append(line);
   sigBuffer.append("\n");
 }
 String output = sigBuffer.toString();
} catch...finally...

我想用Goal A 替换[[goal]][[email]]email@mail.com

我试过了:

String regExp = "\\[\\[[a-z_]*\\]\\]";
output.replaceFirst(regExp, "Goal A");
output.replaceFirst(regExp, "email@mail.com");

但我的输出仍然是:

Test:Line1@line.com
Goal:[[goal]]
Email:[[email]]
Further Text

【问题讨论】:

标签: java regex string replace


【解决方案1】:

字符串是不可变的。您需要将replaceFirst 回调的结果分配给变量。

output = output.replaceFirst(....)

【讨论】:

  • 可能因为这个问题有些受骗,而他们自己也有受骗令人作呕的骗局
猜你喜欢
  • 2020-04-27
  • 1970-01-01
  • 2011-10-10
  • 2011-10-11
  • 2012-12-18
  • 1970-01-01
  • 2019-10-31
  • 2021-06-17
  • 2012-10-05
相关资源
最近更新 更多