Java에서 String []을 쉼표로 구분 된 문자열로 변환
내가 하나가 String[]
String[] name = {"amit", "rahul", "surya"};
IN 절 내부의 SQL 쿼리에서 이름을 매개 변수로 보내고 싶습니다. 어떻게 형식으로 변환합니까?
'amit','rahul','surya'
if (name.length > 0) {
StringBuilder nameBuilder = new StringBuilder();
for (String n : name) {
nameBuilder.append("'").append(n.replace("'", "\\'")).append("',");
// can also do the following
// nameBuilder.append("'").append(n.replace("'", "''")).append("',");
}
nameBuilder.deleteCharAt(nameBuilder.length() - 1);
return nameBuilder.toString();
} else {
return "";
}
간단한 방법을 직접 작성하거나 다양한 유틸리티 중 하나를 사용하십시오.
개인적으로 나는 아파치 StringUtils ( StringUtils.join )를 사용합니다.
편집 : Java 8에서는 더 이상 필요하지 않습니다.
String joined = String.join(",", name);
Android 개발자는 아마도 TextUtils.join을 찾고있을 것입니다.
Android 문서 : http://developer.android.com/reference/android/text/TextUtils.html
암호:
String[] name = {"amit", "rahul", "surya"};
TextUtils.join(",",name)
StringBuilder sb = new StringBuilder();
for (String n : name) {
if (sb.length() > 0) sb.append(',');
sb.append("'").append(n).append("'");
}
return sb.toString();
멋지고 간단하지만 java8이 필요합니다!
문자열 결과 = String.join ( ",", 이름);
org.apache.commons.lang.StringUtils
API를 사용 하여 Java의 문자열 배열에서 쉼표로 구분 된 결과를 형성 할 수도 있습니다 .
StringUtils.join(strArr,",");
이미 Spring Framework를 종속성으로 가지고 있다면 매우 간단한 util 메서드를 사용할 수도 있습니다.
org.springframework.util.StringUtils.arrayToCommaDelimitedString(String[] array)
Guava 라이브러리를 사용하여 단순화 할 수도 있습니다.
String[] name = {"amit", "rahul", "surya"};
String str = "'" + Joiner.on(",").skipNulls().join(name)
.replace(",", "','") + "'";
StringBuilder
String []을 사용 하고 반복하고 각 문자열을 추가합니다.
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();
}
한 줄의 코드로이 작업을 수행 할 수 있습니다.
Arrays.toString(strings).replaceAll("[\\[.\\].\\s+]", "");
String[] name = {"amit", "rahul", "surya"};
public static String arrayToString(String array[])
{
if (array.length == 0) return "";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < array.length; ++i)
{
sb.append(",'").append(array[i]).append("'");
}
return sb.substring(1);
}
나는 이것을 사용한다
public static String convertToCommaSeparated(String[] strings) {
StringBuffer sb = new StringBuffer("");
for (int i = 0; strings != null && i < strings.length; i++) {
sb.append(strings[i]);
if (i < strings.length - 1) {
sb.append(',');
}
}
return sb.toString();
}
사용 StringUtils.join
기능 : 예
String myCsvString = StringUtils.join(myList, ",")
String[] paramIdIdList={"P001","P002","P003"};
StringBuilder builder = new StringBuilder();
for(String paramId : paramIdIdList) {
builder.append(paramId+",");
}
builder.deleteCharAt(builder.length() -1);
String paramIds = builder.toString();
System.Out.Println(paramIds );
코드와 유혹과 "쿨"이 나타날 수 있으므로 사용하지 않는 fold
또는reduce
이들의 고통 바와 같이, 문자열의 큰 컬렉션에 문자열 연결 문제
String[] strings = { "foo", "bar", "baz" };
Optional<String> result = Arrays.stream(strings)
.reduce((a, b) -> String.format("%s,%s", a, b));
System.out.println(result.get());
대신 다른 답변에 따라 String.join()
이미 컬렉션이있는 경우 사용 하거나 StringBuilder
그렇지 않은 경우 사용하십시오.
String newNameList=null;
for(int i = name.length;i>=0;i--){
if(newNameList==null){
newNameList = "\'" + name[name.length - i] + "\'";
}
else{
newNameList += ",\'" + name[name.length - i] + "\'";
}
}
이러한 간단한 작업을 위해 StringBuilder를 생성하지 않을 수도 있습니다. 콘텐츠 적합성을 위해 배열 이름 을 이름 에서 이름 으로 변경했습니다 .
String[] names = {"amit", "rahul", "surya"};
String namesString = "";
int delimeters = (names.size() - 1);
for (String name : names)
namesString += (delimeters-- > 0) ? "'" + name + "'," : "'" + name + "'";
Two lines (excluding declarations; 'finalstring' should be initially declared equal to an empty string), if you don't care a lot about vertically spacing the for() loop:
for (int i = 0; i<string_array.length; i++) {finalstring += string_array[i]+",";}
finalstring = finalstring.substring(0,finalstring.length()-1);
Two lines, you're done. :)
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
This would be an optimized way of doing it
StringBuilder sb = new StringBuilder();
for (String n : arr) {
sb.append("'").append(n).append("',");
}
if(sb.length()>0)
sb.setLength(sbDiscrep.length()-1);
return sb.toString();
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();
}
참고URL : https://stackoverflow.com/questions/6622974/convert-string-to-comma-separated-string-in-java
'Programming' 카테고리의 다른 글
세 번째 변수를 사용하지 않고 두 변수 값 바꾸기셸에서 가비지 수집을 어떻게 강제합니까? (0) | 2020.08.25 |
---|---|
텍스트를 변경할 때마다 UITextView를 맨 위로 스크롤하려면 어떻게해야합니까? (0) | 2020.08.25 |
단일 파일을 사용한 Python 로깅 (함수 이름, 파일 이름, 줄 번호) (0) | 2020.08.25 |
JQuery $ .scrollTo () 함수를 사용하여 창을 스크롤하는 방법 (0) | 2020.08.25 |
Swift-시간 / 분 / 초로의 정수 변환 (0) | 2020.08.25 |