Android में String.join के लिए वैकल्पिक?


82

मैं अलगाववादियों के रूप में अल्पविराम के साथ एक ArrayList को संक्षिप्त करना चाहता हूं। मुझे यह उत्तर मिला , String.joinजावा में इसका उपयोग करना संभव है ।

जब मैं इसे उपयोग करने की कोशिश करता हूं, तो Android Studio निम्नलिखित त्रुटि देता है:

विधि को शामिल नहीं कर सकते 'ज्वाइन (java.lang.String, java.lang.String, java.lang.String, java.lang.String)'

क्या एंड्रॉइड स्टूडियो (लूप के लिए उपयोग करने के बजाय) के लिए एक अच्छा, संक्षिप्त विकल्प है?


TextUtils.join () हो सकता है?
mjp66

प्रयास करें
StringUtils.join

जवाबों:


186

आप TextUtils.joinइसके बजाय उपयोग कर सकते हैं :

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

( String.joinजावा 8 में जोड़ा गया था, यही कारण है कि आप इसे एंड्रॉइड में उपयोग नहीं कर सकते।)


3
गैर-एंड्रॉइड स्टूडियो उपयोगकर्ताओं के लिए कुछ क्लिक सहेजने के लिए:import android.text.TextUtils
पीटर Jankuliak

TextUtils का उपयोग करने से यूनिट टेस्ट में समस्या हो सकती है। उस स्थिति में यहाँ से एक फ़ंक्शन का उपयोग करें: android.googlesource.com/platform/frameworks/base/+/refs/heads/…
Subin

1
@ सुबीन: कैसी समस्या? और TextUtils के विकल्प के रूप में TextUtils से लिंक क्यों? मुझे डर है कि आपकी टिप्पणी वास्तव में स्पष्ट नहीं है।
जॉन स्कीट

@JonSkeet इस समस्या का कारण: stackoverflow.com/q/35763289/1372424 यहां से समाधान करें: medium.com/@okmanideep/…
Subin

2
@Subin: ठीक है, इसलिए विशेष रूप से यदि आप मॉकिटो का उपयोग कर रहे हैं। और ध्यान दें कि समाधान आपके परीक्षण प्रोजेक्ट में TextUtils स्रोत की प्रतिलिपि बनाने का विषय है।
जॉन स्कीट

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

परिणाम:

<html>
<body>
<title>

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.