Android에서 String.join의 대안?


82

구분 기호로 쉼표를 사용하여 ArrayList를 연결하고 싶습니다. 이 답변을 찾았 String.join으며 Java 에서 사용할 수 있음을 나타 냅니다.

그러나 이것을 사용하려고하면 Android Studio에서 다음 오류가 발생합니다.

'join (java.lang.String, java.lang.String, java.lang.String, java.lang.String)'메소드를 해결할 수 없습니다.

for 루프를 사용하는 대신 Android Studio에 대한 좋고 간결한 대안이 있습니까?


TextUtils.join () 아마도?
mjp66

StringUtils.join 시도
Bhargav Thanki

답변:


186

TextUtils.join대신 사용할 수 있습니다 .

String result = TextUtils.join(", ", list);

( String.joinJava 8에 추가 되었기 때문에 Android에서 사용할 수 없습니다.)


3
Android Studio가 아닌 사용자에게 몇 번의 클릭을 저장하려면 :import android.text.TextUtils
Peter Jankuliak

TextUtils를 사용하면 단위 테스트에 문제가 발생할 수 있습니다. 이 경우 여기에있는 함수를 사용하십시오. android.googlesource.com/platform/frameworks/base/+/refs/heads/…
Subin

1
@Subin : 어떤 종류의 문제? 그리고 TextUtils의 대안으로 TextUtils에 링크하는 이유는 무엇입니까? 귀하의 의견이 명확하지 않은 것 같습니다.
Jon Skeet

@JonSkeet이 문제의 원인 : stackoverflow.com/q/35763289/1372424 여기에서 솔루션 : medium.com/@okmanideep/…
Subin

2
@Subin : 맞습니다. 특히 Mockito를 사용하는 경우. 솔루션은 TextUtils 소스를 테스트 프로젝트에 복사하는 것입니다.
Jon Skeet 19

7
String[] List ={"<html>","<body>","<title>"};
String abc;       
abc =TextUtils.join("\n", List);
textmsg.getText().insert(textmsg.getSelectionStart(), abc);

결과:

<html>
<body>
<title>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.