I have a string with comma separated value that I am getting direclty from database. Now I want to pass that entire string to another query but the datatype required is long and i want to use in clause to get this done.
str1 = [123,456,789];
Is there any direct way to do it instead of looping.
Advertisement
Answer
With guava:
List<Long> longs = Lists.newArrayList(Iterables.transform(Splitter.on(',').split("1,2,3"), new Function<String, Long>() {
public Long apply(final String in) {
return in == null ? null : Longs.tryParse(in);
}
}));
EDIT:
With a List<String> (stringList) as input:
List<Long> longs = Lists.newArrayList(Lists.transform(stringList, new Function<String, Long>() {
public Long apply(final String in) {
return in == null ? null : Longs.tryParse(in);
}
}));