I have a string that holds some bytes represented in hex that I want to extract. For example:
String str = "051CF900: 00 D3 0B 60 01 A7 16 C1 09 9C"
I want to extract the values and concatenate them together in a string so that it looks like:
00D30B6001A716C1099C
My attempt:
String stream = "";
Pattern pattern = Pattern.compile("\\b[A-F0-9]{2}\\b");
matcher = pattern.matcher(str);
matcher.find{ newByte ->
println(newByte);
stream += newByte;
};
println(stream);
When I try to add each byte to the stream
it seems to stop looping. If I remove that line each byte is printed out successfully. Why would the loop break when I add newByte
to stream
?
As this is Groovy, you can change all of your code to:
String stream = str.findAll( /\b[A-F0-9]{2}\b/ ).join()
For Groovy, you will need to find all matches from your String
. Replace:
matcher.find { newByte ->
with
matcher.findAll { newByte ->
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With