如何替换特定文本行中的特定单词

时间:2014-03-25 22:33:40

标签: java file-io

好的,所以我有这个yaml文件,我想替换一个字符串

socialspy: true 

使用字符串

socialspy: false 

但我不知道该怎么做。这是完整的yaml文档

timestamps:
  login: 1395784099618
  lastteleport: 1395785353975
  logout: 1395777644566
  mute: 0
ipAddress: 127.0.0.1
lastlocation:
  world: world
  x: -276.7695097103249
  y: 67.31022115326866
  z: -354.327229975015
  yaw: 127.892334
  pitch: 20.817677
money: '155200.0'
logoutlocation:
  world: world
  x: -252.00777100946556
  y: 76.56983022033046
  z: -348.45387330548886
  yaw: 319.99237
  pitch: 19.562881
socialspy: true
godmode: true
afk: false
powertools:
muted: false

3 个答案:

答案 0 :(得分:2)

假设您正在使用体面的操作系统并且您的YAML文档被称为doc

sed -i 's/socialspy: true/socialspy: false/' doc

答案 1 :(得分:0)

你需要一些类似的东西:

String string = "timestamps: login ...";
string = string.replace("socialspy: true", "socialspy: false");

答案 2 :(得分:0)

当你从文件中读取行时,尝试检查字符串是否包含“socialspy”,你可以使用String.contains()方法

如果该行包含您的字符串,那么您可以使用String.replaceFirst()或String.replace()

但它确实看起来像是在使用JSON样式字符串,请尝试查看更多JSON。