스택큐힙리스트

자바 - String[]에서 문자열을 연결하기 위한 내장 함수가 있나요? 본문

카테고리 없음

자바 - String[]에서 문자열을 연결하기 위한 내장 함수가 있나요?

스택큐힙리스트 2023. 11. 21. 00:03
반응형

이거 보다 나은 방법이 있을까요?


String concat(String[] strings) {
StringBuilder out = new StringBuilder();
for(String next: strings) {
out.append(next);
}
return out.toString();
}

아니면 내장된 기능이 있을까 걱정마세요.

답변 1

아니오, 현재 Java 라이브러리에는 없습니다.


JDK7에서는 String.join(, strings)를 작성할 수 있어야합니다. posh for 루프에서 인덱스를 원하는 사용의 85%가 문자열 결합을 수행하기 위한 것으로 나타났습니다(어쨌든 수행할 수 있습니다).


아마도 최상의 효율성을 원한다면 다음과 같이 작성할 수 있습니다:


public static String concat(String... strs) {
int size = 0;
for (String str : strs) {
size += str.length;
}
final char[] cs = new char[size];
int off = 0;
try {
for (String str : strs) {
int len = str.length();
str.getChars(0, len, cs, off);
off += len;
}
} catch (ArrayIndexOutOfBoundsException exc) {
throw new ConcurrentModificationException(exc);
}
if (off != cs.length) {
throw new ConcurrentModificationException();
}
return new String(cs);
}

(물론 컴파일되지 않았고 테스트되지 않았습니다.)

답변 2

Java - String[]의 문자열을 연결하는 내장 함수가 있나요?
Java에서는 String[] 배열의 문자열을 연결하는 내장 함수가 없습니다. 단, 문자열을 연결하기 위해 + 연산자를 사용할 수 있습니다. + 연산자는 두 개의 문자열을 합쳐주는 역할을 합니다.
문자열을 연결하는 방법 중 하나는 StringBuilder 클래스를 사용하는 것입니다. StringBuilder는 가변성을 가지며, 문자열을 효율적으로 연결할 수 있는 다양한 메서드를 제공합니다. 예를 들어, append() 메서드를 사용하여 문자열을 추가하고, toString() 메서드를 사용하여 최종적인 연결된 문자열을 얻을 수 있습니다.
또한, Java 8부터는 String.join() 메서드를 사용하여 문자열을 연결할 수도 있습니다. 이 메서드는 문자열과 구분자를 인수로 받아 문자열 배열을 연결한 결과를 반환합니다.
결론적으로, Java에서는 String[]의 문자열을 연결하기 위해 내장 함수는 제공되지 않지만, + 연산자, StringBuilder 클래스 및 String.join() 메서드를 활용하여 문자열을 연결할 수 있습니다. 이러한 방법을 사용하면 문자열을 효율적으로 처리할 수 있으며, 원하는 결과를 얻을 수 있습니다.

반응형
Comments