Java에서 문자열 배열을 문자열로 변환
문자열 배열을 문자열로 변환하는 Java 코드가 필요합니다.
배열의 "디버그 스타일"덤프 만 원하는 경우 :
String str = Arrays.toString(arr);
또는 더 많은 제어를 위해 (Java 8 이전) :
StringBuilder builder = new StringBuilder();
for(String s : arr) {
builder.append(s);
}
String str = builder.toString();
(자바 8 이상) :
String str = String.join(",", arr);
그리고 당신이 안드로이드 각도에서 오는 경우 :
String str = TextUtils.join(",", arr);
문자열 사이에 원하는 문자가 있으면 위의 내용을 수정할 수 있습니다.
당신은 사전에 자바 8 코드와 동일한 코드를 가까이 볼 수 있지만 사용 할 수 있습니다 StringBuffer
- StringBuilder
스레드 안전하지 새로운 클래스이지만, 멀리 불필요한 동기화 않기 때문에, 따라서 하나의 스레드에서 더 나은 성능을 가지고있다. 요컨대, StringBuilder
99 %의 경우에 더 잘 사용 하는 것이 좋습니다-기능면에서는 두 가지가 동일합니다.
문자열을 사용 하지 말고 여기에 표시된 답변 중 일부와 같이 + =로 문자열을 추가하십시오. 배열에 항목이있는 수만큼 문자열 객체를 만들어 버려서 지붕을 통해 GC를 보냅니다. 작은 배열의 경우 실제로 차이를 느끼지 못할 수도 있지만 큰 배열의 경우 크기가 느릴 수 있습니다.
Apache commons를 사용하십시오 StringUtils.join()
. 그것은 매개 변수로 배열을 얻어 (도 대한 과부하 보유 Iterable
및 Iterator
매개 변수) 및 전화 toString()
(null가 아닌 경우), 각 요소의 스트링 표현을 얻기 위해 각 요소. 각 요소 문자열 표현은 지정된 경우 사이에 구분 기호를 사용하여 하나의 문자열로 결합됩니다.
String joinedString = StringUtils.join(new Object[]{"a", "b", 1}, "-");
System.out.println(joinedString);
생산 :
a-b-1
나는 이것을 위해 Google의 Guava Joiner 를 사용하는 것을 좋아합니다 .
Joiner.on(", ").skipNulls().join("Harry", null, "Ron", "Hermione");
다음과 같은 문자열을 생성합니다.
new String("Harry, Ron, Hermione");
ETA : Java 8도 비슷한 지원을합니다 :
String.join(", ", "Harry", "Ron", "Hermione");
null 값 건너 뛰기를 지원하지 않지만 쉽게 해결할 수 있습니다.
a
기본 유형 의 배열이 주어지면이 작업을 수행 할 수 있습니다 .
StringBuffer result = new StringBuffer();
for (int i = 0; i < a.length; i++) {
result.append( a[i] );
//result.append( optional separator );
}
String mynewstring = result.toString();
Java 8에서 생각하는 가장 간단한 방법은 다음과 같습니다.
String[] array = { "cat", "mouse" };
String delimiter = "";
String result = String.join(delimiter, array);
이런 식으로 임의의 구분자를 선택할 수 있습니다.
Arrays.deepToString 메서드를 사용해보십시오 .
지정된 배열의 "심층 내용"의 문자열 표현을 리턴합니다. 배열에 다른 배열이 요소로 포함되어 있으면 문자열 표현에 내용 등이 포함됩니다. 이 방법은 다차원 배열을 문자열로 변환하기 위해 설계되었습니다
Arrays.toString 오버로드 된 메소드를 시도하십시오 .
그렇지 않으면 일반적인 구현에서 다음을 시도하십시오.
public static void main(String... args) throws Exception {
String[] array = {"ABC", "XYZ", "PQR"};
System.out.println(new Test().join(array, ", "));
}
public <T> String join(T[] array, String cement) {
StringBuilder builder = new StringBuilder();
if(array == null || array.length == 0) {
return null;
}
for (T t : array) {
builder.append(t).append(cement);
}
builder.delete(builder.length() - cement.length(), builder.length());
return builder.toString();
}
다음은 배열에서 문자열로 변환하는 예입니다.
공개 클래스 ArrayToString {
공공 정적 무효 메인 (문자열 [] 인수) { String [] strArray = new String [] { "Java", "PHP", ".NET", "PERL", "C", "COBOL"};String newString = Arrays.toString(strArray); newString = newString.substring(1, newString.length()-1); System.out.println("New New String: " + newString); } }
String[] strings = new String[25000];
for (int i = 0; i < 25000; i++) strings[i] = '1234567';
String result;
result = "";
for (String s : strings) result += s;
//linear +: 5s
result = "";
for (String s : strings) result = result.concat(s);
//linear .concat: 2.5s
result = String.join("", strings);
//Java 8 .join: 3ms
Public String join(String delimiter, String[] s)
{
int ls = s.length;
switch (ls)
{
case 0: return "";
case 1: return s[0];
case 2: return s[0].concat(delimiter).concat(s[1]);
default:
int l1 = ls / 2;
String[] s1 = Arrays.copyOfRange(s, 0, l1);
String[] s2 = Arrays.copyOfRange(s, l1, ls);
return join(delimiter, s1).concat(delimiter).concat(join(delimiter, s2));
}
}
result = join("", strings);
// Divide&Conquer join: 7ms
선택의 여지가 없지만 Java 6 또는 7을 사용하려면 Divide & Conquer join을 사용해야합니다.
arrayList에서 문자열을 생성하는 코드를 원합니다.
Iterate through all elements in list and add it to your String result
결과로 문자열 사용 또는 StringBuffer / StringBuilder의 두 가지 방법으로이 작업을 수행 할 수 있습니다.
예:
String result = "";
for (String s : list) {
result += s;
}
...하지만 성능상의 이유로이 방법은 좋지 않습니다. 더 나은가 사용하는 StringBuffer를 (스레드 안전) 또는 StringBuilder에 문자열을 추가로 더 적합하는
String array[]={"one","two"};
String s="";
for(int i=0;i<array.length;i++)
{
s=s+array[i];
}
System.out.print(s);
Apache Commons의 StringUtils 라이브러리 의 결합 방법을 사용하십시오.
String[] stringArray = {"a","b","c"};
StringUtils.join(stringArray, ",");
배열에 얼마나 많은 요소가 있는지 알고 있다면 간단한 방법은 다음과 같습니다.
String appendedString = "" + array[0] + "" + array[1] + "" + array[2] + "" + array[3];
참고 URL : https://stackoverflow.com/questions/5283444/convert-array-of-strings-into-a-string-in-java
'IT story' 카테고리의 다른 글
'adb'는 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. (0) | 2020.04.26 |
---|---|
안드로이드에서 다른 뷰 위에 뷰 배치 / 겹침 (z-index) (0) | 2020.04.26 |
레일스 원시 SQL 예제 (0) | 2020.04.26 |
종횡비를 유지하면서 div 크기를 반응 적으로 변경 (0) | 2020.04.26 |
서로 옆에 CSS 두 div (0) | 2020.04.26 |