如何将字符串流拆分为不同的流

问题描述 投票:0回答:1

我有一个像 5AA50100FF1837d437d437d40000 这样的字符串流

我想分割,如果它包含 0100FF18 然后 37d4 37d4 37d4 0000 如何做到这一点

我需要拆分流并为该拆分流进行计算

java java-stream spliterator
1个回答
0
投票

像这样尝试一下。找到目标后,使用

index + target.length()
查找所需字符串的开头。然后,使用 find 查找四个字符的每个分组并流式传输
MatchResults
,抓取匹配的组并作为数组返回。如果目标字符串不匹配,则数组将为空。

String target = "0100FF18";
String s = "5AA50100FF1837d437d437d40000";

String[] tokens = new String[0];
int index = 0;
if ((index = s.indexOf(target)) >= 0) {
    tokens = Pattern.compile("....")
            .matcher(s.substring(index + target.length())).results()
            .map(MatchResult::group).toArray(String[]::new);

}
System.out.println(Arrays.toString(tokens));

打印

[37d4, 37d4, 37d4, 0000]
© www.soinside.com 2019 - 2024. All rights reserved.