使用正则表达式,如何确保第一个零后面除了零之外什么都没有?
ABC1000000 - valid
3212130000 - valid
0000000000 - valid
ABC1000100 - invalid
0001000000 - invalid
Run Code Online (Sandbox Code Playgroud)
未经验证的正则表达式将类似于 - [A-Z0-9]{10}
,确保它是 10 个字符。
如果我的层次结构仍处于排序状态,但已展平 - 如何使用 Java Streams API 创建父/子结构?一个例子:我如何从
-,A,Foo
A,A1,Alpha1
A,A2,Alpha2
-,B,Bar
B,B1,Bravo1
B,B2,Bravo2
Run Code Online (Sandbox Code Playgroud)
到
-
A
A1,Alpha1
A2,Alpha2
B
B1,Bravo1
B2,Bravo2
Run Code Online (Sandbox Code Playgroud)
一种简单的非流方式是跟踪父列并查看它是否已更改。
我已经尝试过使用 Collectors 和 groupingBy 的各种方法,但还没有找到方法。
List<Row> list = new ArrayList<>();
list.add(new Row("-", "A", "Root"));
list.add(new Row("A", "A1", "Alpha 1"));
list.add(new Row("A", "A2", "Alpha 2"));
list.add(new Row("-", "B", "Root"));
list.add(new Row("B", "B1", "Bravo 1"));
list.add(new Row("B", "B2", "Bravo 2"));
//Edit
Map<Row, List<Row>> tree;
tree = list.stream().collect(Collectors.groupingBy(???))
Run Code Online (Sandbox Code Playgroud)