Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
device-back
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
1
议题
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
device-back
Commits
b91491b4
提交
b91491b4
authored
2月 05, 2021
作者:
邓砥奕
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新
上级
1b80103c
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
61 行增加
和
7 行删除
+61
-7
DeviceSeqUtil.java
.../src/main/java/com/tykj/dev/misc/utils/DeviceSeqUtil.java
+61
-7
没有找到文件。
dev-misc/src/main/java/com/tykj/dev/misc/utils/DeviceSeqUtil.java
浏览文件 @
b91491b4
...
...
@@ -19,12 +19,12 @@ public class DeviceSeqUtil {
public
static
void
main
(
String
[]
args
)
{
List
<
String
>
list
=
new
ArrayList
<>();
list
.
add
(
"a2"
);
list
.
add
(
"
a
4"
);
list
.
add
(
"
a
6"
);
list
.
add
(
"
a
5"
);
list
.
add
(
"
c
4"
);
list
.
add
(
"
d
6"
);
list
.
add
(
"
c
5"
);
list
.
add
(
"a3"
);
list
.
add
(
"a1"
);
compositionInterval
(
list
);
System
.
out
.
println
(
getContinuousSeqs
(
list
)
);
}
/**
...
...
@@ -234,12 +234,66 @@ public class DeviceSeqUtil {
* @return 序列号连续组合的区间
*/
public
static
List
<
String
>
getContinuousSeqs
(
List
<
String
>
strings
){
List
<
String
>
results
=
new
ArrayList
<>();
List
<
String
>
sortedString
=
strings
.
stream
().
sorted
().
collect
(
Collectors
.
toList
());
String
lastSeq
=
sortedString
.
get
(
0
);
for
(
int
i
=
0
;
i
<
sortedString
.
size
();
i
++){
String
first
=
null
;
for
(
int
i
=
1
;
i
<
sortedString
.
size
();
i
++){
String
index
=
sortedString
.
get
(
i
);
if
(
getFirstString
(
lastSeq
).
equals
(
getFirstString
(
index
)))
{
Long
num1
=
getLastNum
(
lastSeq
);
Long
num2
=
getLastNum
(
index
);
if
(
num2
==
num1
+
1
)
{
if
(
first
==
null
){
first
=
lastSeq
;
}
if
(
i
==
sortedString
.
size
()-
1
){
StringBuffer
stringBuffer
=
new
StringBuffer
();
stringBuffer
.
append
(
first
).
append
(
"-"
).
append
(
lastSeq
);
results
.
add
(
stringBuffer
.
toString
());
first
=
null
;
}
}
else
{
if
(
first
==
null
)
{
results
.
add
(
lastSeq
);
}
else
{
StringBuffer
stringBuffer
=
new
StringBuffer
();
stringBuffer
.
append
(
first
).
append
(
"-"
).
append
(
lastSeq
);
results
.
add
(
stringBuffer
.
toString
());
first
=
null
;
}
}
}
else
{
if
(
first
==
null
)
{
results
.
add
(
lastSeq
);
}
else
{
StringBuffer
stringBuffer
=
new
StringBuffer
();
stringBuffer
.
append
(
first
).
append
(
"-"
).
append
(
lastSeq
);
results
.
add
(
stringBuffer
.
toString
());
first
=
null
;
}
}
if
(
i
==
sortedString
.
size
()-
1
){
results
.
add
(
index
);
}
lastSeq
=
index
;
}
return
null
;
return
results
;
}
/**
* 获取字符串最后的数字
*/
private
static
Long
getLastNum
(
String
s
){
return
Long
.
parseLong
(
s
.
replaceAll
(
".*[^\\d](?=(\\d+))"
,
""
));
}
private
static
String
getFirstString
(
String
s
){
String
s1
=
s
.
replaceAll
(
".*[^\\d](?=(\\d+))"
,
""
);
return
s
.
substring
(
0
,
s
.
length
()-
s1
.
length
());
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论