जावा विस्फोट और Implode (PHP) के बराबर [बंद]


93

मैं जावा में नया हूँ, हालाँकि PHP में एक अच्छा अनुभव था, और जावा में विस्फोट और प्रत्यारोपण (PHP में उपलब्ध) कार्यों के लिए सही प्रतिस्थापन की तलाश कर रहा था।

मैं उसी के लिए Googled है लेकिन परिणामों से संतुष्ट नहीं हूं। किसी को भी मेरी समस्या के लिए अच्छा समाधान है की सराहना की जाएगी।

उदाहरण के लिए:

String s = "x,y,z";
//Here I need a function to divide the string into an array based on a character.
array a = javaExplode(',', s);  //What is javaExplode?
System.out.println(Arrays.toString(a));

वांछित उत्पादन:

[x, y, z]

3
ठीक है, आपने अब तक क्या समाधान पाया है?
कोन्स्टेंटिन योवकोव

7
इस प्रश्न को क्यों वोट दिया गया है? और विषय से दूर ?? कृपया अगले सवालों से बचने के लिए सुझाव दें।
पंकज वंजारी

19
मुझे लगता है कि दृश्य के आधार पर यह सवाल इतना बुरा नहीं है। मैं मानता हूँ कि यह एक अजीब सवाल है, लेकिन हम में से बहुत से PHP प्रोग्रामर सिर्फ जावा विस्फोट के लिए Google हैं और फिर इसे एक सही उत्तर के रूप में प्राप्त करते हैं।
gorgi93

6
अब यह नवंबर 2014 है, और मैंने जावा स्ट्रिंग को विस्फोट कर दिया, और यह प्रश्न अभी भी शीर्ष परिणाम के रूप में सामने आया था। मुझे लगता है कि स्थिति को 'ऑफ-टॉपिक' के रूप में बंद किया जाना चाहिए, क्योंकि यह मेरे लिए टॉपिक नहीं है।
चेन ली योंग

3
फरवरी 2016, यह प्रश्न "जावा विस्फोट" के लिए मुख्य परिणाम है।
अपरिभाषित

जवाबों:


139

स्ट्रिंग के लिए जावाडोक पता चलता है कि String.split()क्या आप के संबंध में के लिए देख रहे explode

जावा में "ज्वाइन" समकक्ष का "इम्पोड" शामिल नहीं है। एक साधारण फ़ंक्शन के लिए एक विशाल बाहरी निर्भरता को शामिल करने के बजाय, जैसा कि अन्य उत्तर सुझाते हैं, आप सिर्फ कोड की एक दो पंक्तियाँ लिखना चाह सकते हैं। इसे पूरा करने के कई तरीके हैं; एक StringBuilderका उपयोग कर रहा है:

String foo = "This,that,other";
String[] split = foo.split(",");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < split.length; i++) {
    sb.append(split[i]);
    if (i != split.length - 1) {
        sb.append(" ");
    }
}
String joined = sb.toString();

आपके सभी उत्तर के लिए धन्यवाद u दोस्तों।
पंकज वंजारी

1
स्प्लिट वास्तव में एक नियमित अभिव्यक्ति का उपयोग करता है (PHP, पर्ल, जावा, आदि में)। यदि आप किसी अन्य प्रतीक पर विभाजित करना चाहते हैं, तो इसे बचाना होगा: इस तरह: स्ट्रिंग [] विभाजन = foo.split ("\\" (");
होल्डऑफ़हंगर

2
ध्यान दें कि जावा 8 के बाद से हमारे पास वास्तव में String#join( प्रलेखन ) है। आपके उदाहरण के लिए: String joined = String.join(" ", split);। विधि StringJoinerवर्ग का उपयोग करती है ।
ज़ुबुज़ार्ड

24

String.split() के लिए एक प्रतिस्थापन प्रदान कर सकते हैं explode()

के लिए के स्थान पर implode()मैं सलाह चाहते हैं आप या तो एक कस्टम समारोह या उपयोग लिखने के लिए अपाचे कॉमन्स के StringUtils.join()कार्य करता है।


16

अच्छे विकल्प String.split और StringUtils.join विधियाँ हैं।

विस्फोट :

String[] exploded="Hello World".split(" ");

Implode:

String imploded=StringUtils.join(new String[] {"Hello", "World"}, " ");

हालांकि ध्यान रखें कि StringUtils एक बाहरी लाइब्रेरी में है।


1
आप स्ट्रिन्गुलेट्स कहाँ पाते हैं? मुझे यह वर्ग com.sun.internal और com.sun.deploy में मिलता है, लेकिन मुझे नहीं लगता कि यह सीधे तौर पर com.sun के तहत कक्षाओं का उपयोग करने के लिए एक अच्छा विचार हैpackages such as sun., that are outside of the Java platform, can be different across OS platforms (Solaris, Windows, Linux, Macintosh, etc.) and can change at any time without notice with SDK versions
अरनौद डेनॉयले

ठीक है, आपके संपादन के बाद, मैं देखता हूं कि यह वर्ग एक बाहरी
परिवाद

... है जो Appache कॉमन्स (मुझे लगता है): StringUtils
crusy


4

मैं PHP से परिचित नहीं हूं, लेकिन मुझे लगता है कि String.split जावा PHP के बराबर है explode। के रूप में implode, standart पुस्तकालय ऐसी कार्यक्षमता प्रदान नहीं करता है। तुम बस पुनरावृति पर अपने सरणी और निर्माण स्ट्रिंग का उपयोग StringBuilder / StringBuffer । या आप Apache Commons StringUtils से उत्कृष्ट Google अमरूद स्प्लिटर और जॉइनर या split/joinतरीके आजमा सकते हैं ।


1
गुवा को छोड़कर सभी लिंक वैध हैं, क्योंकि 3 साल बीत गए और वे गिटहब चले गए। मैंने टिप्पणी को नए लिंक के साथ अपडेट किया है।
इवान शरमेट

0

अगर आप String Class के सन्दर्भ में बात कर रहे हैं। तो आप उपयोग कर सकते हैं

सबस्ट्रिंग / विभाजन

विस्फोट के लिए और स्ट्रिंग का उपयोग करें

concate

Implode के लिए।


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