import java.util.*;
import java.util.regex.Pattern;
import static java.util.stream.Collectors.*;
class Ideone {
public static void main
(String[] args
) { String data
= "John Adams (Backend developer) Bob Scott (Frontend developer) (UI/UX designer) Alex Walker (Network engineer)"; Map
<String, List
<String
>> skills
= Pattern.
compile("(.*?) \\((.*?)\\)(?! \\() ?").
matcher(data
) .
results().
collect(toMap
(mr
-> mr.
group(1), mr
-> Arrays.
asList(mr.
group(2).
split("\\) \\(")))); skills.
forEach((n, s
) -> System.
out.
printf("%s has skills: %s\n", n,
String.
join(", ", s
))); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CmltcG9ydCBzdGF0aWMgamF2YS51dGlsLnN0cmVhbS5Db2xsZWN0b3JzLio7CgpjbGFzcyBJZGVvbmUgewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHsKCQlTdHJpbmcgZGF0YSA9ICJKb2huIEFkYW1zIChCYWNrZW5kIGRldmVsb3BlcikgQm9iIFNjb3R0IChGcm9udGVuZCBkZXZlbG9wZXIpIChVSS9VWCBkZXNpZ25lcikgQWxleCBXYWxrZXIgKE5ldHdvcmsgZW5naW5lZXIpIjsKICAgICAgICBNYXA8U3RyaW5nLCBMaXN0PFN0cmluZz4+IHNraWxscyA9IFBhdHRlcm4uY29tcGlsZSgiKC4qPykgXFwoKC4qPylcXCkoPyEgXFwoKSA/IikubWF0Y2hlcihkYXRhKQogICAgICAgICAgICAgICAgLnJlc3VsdHMoKS5jb2xsZWN0KHRvTWFwKG1yIC0+IG1yLmdyb3VwKDEpLCAgbXIgLT4gQXJyYXlzLmFzTGlzdChtci5ncm91cCgyKS5zcGxpdCgiXFwpIFxcKCIpKSkpOwogICAgICAgIHNraWxscy5mb3JFYWNoKChuLCBzKSAtPiBTeXN0ZW0ub3V0LnByaW50ZigiJXMgaGFzIHNraWxsczogJXNcbiIsIG4sIFN0cmluZy5qb2luKCIsICIsIHMpKSk7Cgl9Cn0=