【问题标题】:Find a string and replace another string in Java [closed]在Java中查找一个字符串并替换另一个字符串[关闭]
【发布时间】:2012-09-11 18:32:22
【问题描述】:

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

{"sno":"1c8d1d7eaa32ff3f58a8822111276d5a","at":"app","tt":{"AppParam1":"AppParamValue1","AppParam2":"AppParamValue2"}},"c":{"dt":"Microsoft XDeviceEmulator","pn":"WP","pv":"8.0.9832.0"}

在java中我想找到'sno','pn'和'pv'并替换(我的意思是)上面的文本文件的值

"sno" has value "1c8d1d7eaa32ff3f58a8822111276d5a"
"pn" has value "WP"
"pv" has value "8.0.9832.0"

新价值观

"sno" has to be changed to "637829"
"pn"  has to be changed to "XYZ"
"pv" has to be changed to "2.2.4.0"

非常感谢您的帮助! 谢谢

【问题讨论】:

  • What have you tried? 顺便说一句 - 你的问题是什么?
  • 这看起来像一个 JSON。你为什么不尝试一个 JSON 库而不是发明它?

标签: java string replace


【解决方案1】:

这是一个 JSON 对象。

将该字符串转换为 JSON 对象,更改值,然后再次将其转换为字符串。

您可以在此处阅读有关 java 中 JSON 对象的信息:http://www.json.org/java/

这里有一个关于如何使用它们的简单教程:http://answers.oreilly.com/topic/257-how-to-parse-json-in-java/

【讨论】:

  • 是的,你是对的,它是一个 json。但我将其视为普通字符串值,并希望替换键 adhoc 的值
【解决方案2】:

您可以将其转换为 JSON,进行更改,然后将其转换回字符串。 或者如果你真的想自己替换这些值,你可以使用这些行:

yourstring = yourstring.replaceFirst("\"sno\":\"[^\"]+\"", "\"sno\":\"637829\"");
yourstring = yourstring.replaceFirst("\"pn\":\"[^\"]+\"", "\"pn\":\"XYZ\"");
yourstring = yourstring.replaceFirst("\"pv\":\"[^\"]+\"", "\"pv\":\"2.2.4.0\"");

只有当这些键无法在字符串的其他地方找到时

【讨论】:

  • 这就是我要找的……太好了!
猜你喜欢
  • 2018-08-29
  • 1970-01-01
  • 2019-04-18
  • 1970-01-01
  • 2017-06-16
  • 2013-12-03
  • 2021-03-16
  • 2015-01-26
  • 2021-06-15
相关资源
最近更新 更多