我有一个字符串例如:
[01:07]bbbbbbb[00:48]aaaaaa[01:36]ccccccccc[03:45]gggggggg[03:31]fffffff[01:54]ddddddddd[02:09]eeeeeee[03:59]hhhhhhhh
这需要排序为
[00:48]aaaaaa[01:07]bbbbbbb[01:36]ccccccccc[01:54]ddddddddd[02:09]eeeeeee[03:31]fffffff[03:45]gggggggg[03:59]hhhhhhhh
它基于方括号内的字符串。
我如何在java中做到这一点?
您可以简单地:
使用Java 8中引入的流库,可以在单个表达式中完成:
final String sorted = Arrays.asList(input.split("(?=\\[)")).stream().sorted().collect(Collectors.joining());
final String input = "[01:07]bbbbbbb[00:48]aaaaaa[01:36]ccccccccc[03:45]gggggggg[03:31]fffffff[01:54]ddddddddd[02:09]eeeeeee[03:59]hhhhhhhh";
final String entries[] = input.split("(?=\\[)");
Arrays.sort(entries);
String res = "";
for (final String entry : entries) {
res += entry;
}
System.out.println(res);
输出:
[00:48]aaaaaa[01:07]bbbbbbb[01:36]ccccccccc[01:54]ddddddddd[02:09]eeeeeee[03:31]fffffff[03:45]gggggggg[03:59]hhhhhhhh
为什么我要输入。拆分(“(?=\ \[)”)”?
String#split可用于正则表达式,但不是标准字符“regex-wise”。因此,需要使用\[/code>(和
\]
)对它们进行转义。
但是,在Java
String
中,\
也不是标准字符,也需要转义。
有关更多详细信息,请参阅有关堆栈溢出的回答。
问题内容: 如何获取字符串中的括号值。 我只需要AED文字。谢谢 问题答案: 编译并打印“ AED”。甚至适用于多个括号: 正则表达式表示: :字符 :开始比赛组 :以下字符之一 :不是以下字符 :与前面的一样,这表示“除” 以外的所有字符 :集合中的其他内容之一 :停止比赛组 :字面量闭式括号
问题内容: PHP字符串文字中的(花括号)是什么意思? 问题答案: 这是字符串插值的复杂(弯曲)语法。从手册中: 复杂(卷曲)语法 之所以称其为“复杂”,是因为语法复杂,而是因为它允许使用复杂的表达式。 可以通过此语法包括具有字符串表示形式的任何标量变量,数组元素或对象属性。只需以与出现在字符串外部相同的方式编写表达式,然后将其包装在和中即可。由于无法转义,因此仅在紧随其后的才会识别此语法。使用
期望的行为 我有一个输入验证,除其他外,测试长度(
问题内容: 我想使用Java删除字符串中所有类型的方括号字符(例如:[],(),{})。 我尝试使用此代码: 但这不起作用,请帮助我。 问题答案: 要删除 _ 所有标点符号_ ,包括所有方括号,大括号和方括号…,按问题是:
我有一个带有键值对的数组,数组列是id和name。我想按ID对这个数组进行排序。 id列值的类型是字符串类型,但我想将它们排序为数字值,也应该在IE上工作 尽管顺序确实发生了变化,但它并没有像预期的那样发生变化,在IE中也会抛出一个错误。
问题内容: 我只需要返回字符串中方括号内包含的文本。我有以下正则表达式,但这也会返回方括号: 字符串只能包含一组方括号,例如: 我希望匹配项包含“一些重要信息”,而不是当前包含的“ [一些重要信息]”。 问题答案: 使用分组。我添加了一个使之匹配的“ ungreedy”,因为这可能就是您想要的。