Java1.8 将字符串拆分为键值对
我有一个像这样的字符串,但是非常大的字符串
String data = "created:2022-03-16T07:10:26.135Z,timestamp:2022-03-16T07:10:26.087Z,city:Bangalore,Country:Ind";
Now : 表示键值对,而 , 分隔键值对。我想将键值对添加到 HashMap 中。我期待输出:-
{created=2022-03-16T07:10:26.135Z,timestamp=2022-03-16T07:10:26.087Z,city=Bangalore,Country=Ind}
我尝试了多种方式,但我得到了这样的结果
{timestamp=2022-03-16T07, created=2022-03-16T07}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
根据提供的信息,这是一种方法。它需要分割成多个部分并限制分割的大小和位置。
请参阅在 IdeOne.com 上实时运行的代码。
正如我在评论中所说,由于重复的键,您不能使用单个映射。您可能需要考虑如下的类来保存信息,
然后您可以将地图中具有数据的给定国家/地区的所有城市分组,如下所示:
Map>< /code> 其中键是国家/地区。
Based on the information provided, here one way to do it. It required both splitting in sections and limiting the size and location of the split.
See this code run live at IdeOne.com.
As I said in the comments, you can't use a single map because of the duplicate keys. You may want to consider a class as follows to hold the information
You could then group all the cities for of a given country for which you had data in a map as follows:
Map<String, List<CityData>>
where the Key is the country.输出:
{创建=2022-03-16T07:10:26.135Z,时间戳=2022-03-16T07:10:26.087Z}
output:
{created=2022-03-16T07:10:26.135Z, timestamp=2022-03-16T07:10:26.087Z}
您需要拆分数据并对其进行迭代,通过指定 index=2 在冒号上再拆分一次,并将结果存储在 Map 中。如果你想保留顺序,请使用 LinkedHashMap。
You need to split the data and iterate on this, split it one more time on colon by specifying index=2 and store the result in a Map. If you want to preserve the order use LinkedHashMap.