【发布时间】:2021-07-30 19:22:43
【问题描述】:
我的地图是这样的
键: + something
值: something
所以它有大量以+ 或- 开头的字符串,我需要按字母顺序对其进行排序。
例如:
{
host: hexlet.io,
+ timeout: 20,
+ verbose: true,
- follow: false,
- proxy: 123.234.53.22,
- timeout: 50
}
而且必须这样排序:
{
- follow: false,
host: hexlet.io,
- proxy: 123.234.53.22,
- timeout: 50,
+ timeout: 20,
+ verbose: true
}
如何跳过“+”或“-”对其进行排序?
更新:
非常感谢!但我错过了我的样板必须是这样的: (它在减号之前包含 2 个空格,在它之后包含 1 个空格)
{
- follow: false
host: hexlet.io
- proxy: 123.234.53.22
- timeout: 50
+ timeout: 20
+ verbose: true
}
所以如果我创建 s -> s.substring(2) 它不会按字母顺序排序,或者如果我使用 3-4,我的“超时”字符串崩溃,我有“+超时:50”而不是“ -超时:50”和“+超时:20”。 我该如何解决?
【问题讨论】:
-
您应该使用自定义比较器。请不要使用图片 - 格式化代码
-
Comparator.comparing(s -> s.substring(2)) -
非常感谢!并抱歉图片不正确!
-
在此处复制并粘贴 3 个内容 作为文本(这样我们就可以复制并尝试在我们这边:(1)未排序的字符串,(2)按您想要的方式排序的字符串, (3) 你的 Java 尝试为 minimal reproducible example 。
-
对这类问题的通常最佳答案是不要使用一些下游文本表示,使用本机数据结构。在这种情况下,这看起来像是某种差异。