i have one String[]
String[] name = {\"amit\", \"rahul\", \"surya\"};
i want to send name as parameter in sql query inside IN
This my be helpful!!!
private static String convertArrayToString(String [] strArray) {
StringBuilder builder = new StringBuilder();
for(int i = 0; i<= strArray.length-1; i++) {
if(i == strArray.length-1) {
builder.append("'"+strArray[i]+"'");
}else {
builder.append("'"+strArray[i]+"'"+",");
}
}
return builder.toString();
}
In java 8 for none string array and none primitive object (Long, Integer, ...)
List<Long> ids = Arrays.asList(1l, 2l,3l);
ids.stream().map(String::valueOf).collect(Collectors.joining(","))))
In java 8 for specific field of an objets array (example a car with 2 fields color and speed)
List<Car> cars= Cars.asList(car1, cars2,car3);
cars.stream().map(Car::getColor).collect(Collectors.joining(","))))
Combine map
with valueOf
for none String field of an array of objects
You can also use org.apache.commons.lang.StringUtils
API to form a comma separated result from string array in Java.
StringUtils.join(strArr,",");
Nice and simple: but java8 required!
String result = String.join(",", names);
use StringBuilder
and iterate over your String[], and append each String into it:
public static String convert(String[] name) {
StringBuilder sb = new StringBuilder();
for (String st : name) {
sb.append('\'').append(st).append('\'').append(',');
}
if (name.length != 0) sb.deleteCharAt(sb.length()-1);
return sb.toString();
}
here is a Utility method to split an array and put your custom delimiter, using
String.replace(String,String)
Arrays.toString(Object[])
here it is :
public static String toString(String delimiter, Object[]array){
String s = "";
// split array
if (array != null && array.length > 0) {
s = Arrays.toString(array).replace("[", "").replace("]", "");
}
// place delimiter (notice the space in ", ")
if(delimiter != null){
s = s.replace(", ", delimiter);
}
return s;
}
change the second argument type to suite your array type