Java에서 문자열 배열을 문자열로 변환
문자열 배열을 문자열로 변환하기 위한 자바 코드를 원합니다.
자바 8 이상
String.join()
:
String str = String.join(",", arr);
:arr
의 것을 사용할 도 있습니다.Iterable
(리스트 등), 단순한 배열이 아닙니다.
「 」가 Stream
가입 콜렉터를 사용할 수 있습니다.
Stream.of("a", "b", "c")
.collect(Collectors.joining(","))
레거시(Java 7 이전)
StringBuilder builder = new StringBuilder();
for(String s : arr) {
builder.append(s);
}
String str = builder.toString();
또는 어레이의 "debug-style" 덤프만 원하는 경우:
String str = Arrays.toString(arr);
실제로 레거시(Java 1.4 이전 버전)인 경우 대체해야 합니다.StringBuilder
StringBuffer
.
안드로이드
TextUtils.join()
:
String str = TextUtils.join(",", arr);
일반적인 주의사항
문자열 사이에 삽입하는 문자에 따라 위의 예를 모두 변경할 수 있습니다.
문자열을 사용하지 말고 여기에 나와 있는 답변 중 일부와 같이 루프에 +=와 함께 추가합니다.배열에 있는 항목 수만큼 문자열 개체를 만들고 폐기하기 때문에 GC가 지붕을 통해 전송됩니다.소규모 어레이의 경우 실제로 차이를 알아차리지 못할 수도 있지만 대규모 어레이의 경우 훨씬 느릴 수 있습니다.
Apache 커먼스를 사용합니다.어레이를 파라미터로 사용합니다(또한 오버로드도 있습니다).Iterable
★★★★★★★★★★★★★★★★★」Iterator
및 calls " " " " " 。toString()
(늘이 아닌 경우) 각 요소의 문자열 표현을 가져옵니다.각 구분자를 됩니다.
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 값을 건너뛸 수 없지만 쉽게 해결할 수 있습니다.
Java 8에서 가장 간단한 방법은 다음과 같습니다.
String[] array = { "cat", "mouse" };
String delimiter = "";
String result = String.join(delimiter, array);
이 방법으로 임의의 딜리미터를 선택할 수 있습니다.
할 수 있습니다.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();
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();
}
다음으로 Array to String 변환 예를 나타냅니다.
퍼블릭 클래스 ArrayToString{
public static void main(String[] args){String [] strArray = 새 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을 사용해야 합니다.
Apache Commons의 StringUtils 라이브러리의 Join 메서드를 사용합니다.
String[] stringArray = {"a","b","c"};
StringUtils.join(stringArray, ",");
arrayList에서 문자열을 생성하는 코드가 필요합니다.
Iterate through all elements in list and add it to your String result
이는 String을 결과로 사용하는 방법과 StringBuffer/StringBuilder의 두 가지 방법으로 수행할 수 있습니다.
예:
String result = "";
for (String s : list) {
result += s;
}
...그러나 퍼포먼스상의 이유로 이것은 좋은 프랙티스가 아닙니다.StringBuffer(스레드세이프) 또는 StringBuilder를 사용하여 String을 추가하는 것이 좋습니다.
스트림을 사용하면 다음과 같은 유연성을 얻을 수 있습니다.
map --> 어레이 오브젝트를 toString으로 변환합니다.
filter --> 비어 있는 경우 삭제
join --> join 문자 추가
//Deduplicate the comma character in the input string
String[] splits = input.split("\\s*,\\s*");
return Arrays.stream(splits).filter(StringUtils::isNotBlank).collect(Collectors.joining(", "));
String array[]={"one","two"};
String s="";
for(int i=0;i<array.length;i++)
{
s=s+array[i];
}
System.out.print(s);
어레이에 포함된 요소의 양을 알고 있는 경우, 간단한 방법은 다음과 같습니다.
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
'programing' 카테고리의 다른 글
자바어로 물체의 모니터는 무슨 뜻입니까?왜 이 단어를 사용하는가? (0) | 2023.01.20 |
---|---|
목록에 있는 모든 아이템을 Python과 함께 곱하려면 어떻게 해야 하나요? (0) | 2023.01.20 |
MySQL에서 false를 기본값으로 사용하여 부울 열을 생성하시겠습니까? (0) | 2023.01.10 |
MySQL - 첫 번째 문자가 소문자 또는 대문자일 경우 선택합니다. (0) | 2023.01.10 |
n번째 문자마다 문자열 분할 (0) | 2023.01.10 |