Android स्प्लिट स्ट्रिंग


227

मेरे पास एक स्ट्रिंग है जिसे बुलाया जाता है CurrentStringऔर कुछ इस तरह से होता है "Fruit: they taste good"
मैं सीमांकक CurrentStringके :रूप में उपयोग करके विभाजित करना चाहूंगा ।
तो इस तरह से यह शब्द "Fruit"अपने स्वयं के स्ट्रिंग में विभाजित "they taste good"हो जाएगा और एक और स्ट्रिंग होगा।
और फिर मैं बस उस स्ट्रिंग को प्रदर्शित करने के लिए SetText()2 अलग-अलग TextViewsका उपयोग करना चाहूंगा ।

इसके लिए सबसे अच्छा तरीका क्या होगा?


आप शायद नियमित अभिव्यक्ति में पढ़ने की कोशिश कर सकते हैं। वे ठीक भी काम करते हैं।
शौविक

10
@Falmarri - प्रोग्रामिंग के बारे में कोई भी अनूठा सवाल स्टैक ओवरफ्लो पर स्वागत है।
टिम पोस्ट

जवाबों:


606
String currentString = "Fruit: they taste good";
String[] separated = currentString.split(":");
separated[0]; // this will contain "Fruit"
separated[1]; // this will contain " they taste good"

आप दूसरी स्ट्रिंग के लिए स्थान निकालना चाहते हैं:

separated[1] = separated[1].trim();

यदि आप डॉट (।) जैसे विशेष वर्ण के साथ स्ट्रिंग को विभाजित करना चाहते हैं, तो आपको डॉट से पहले एस्केप चरित्र \ का उपयोग करना चाहिए

उदाहरण:

String currentString = "Fruit: they taste good.very nice actually";
String[] separated = currentString.split("\\.");
separated[0]; // this will contain "Fruit: they taste good"
separated[1]; // this will contain "very nice actually"

इसे करने के अन्य तरीके भी हैं। उदाहरण के लिए, आप StringTokenizerवर्ग (से java.util) का उपयोग कर सकते हैं :

StringTokenizer tokens = new StringTokenizer(currentString, ":");
String first = tokens.nextToken();// this will contain "Fruit"
String second = tokens.nextToken();// this will contain " they taste good"
// in the case above I assumed the string has always that syntax (foo: bar)
// but you may want to check if there are tokens or not using the hasMoreTokens method

इसके लिए धन्यवाद! नया टाइम ऑब्जेक्ट बनाते समय घंटे और मिनट को अलग करने के लिए भी उपयोगी है।
काम किया

24
धन्यवाद! एंड्रॉइड में .split () विधि बिल्कुल काम नहीं करती है! StringTokenizeris ठीक काम कर रहा है।
आयुष पटेरिया

हाँ यह करता है ... आपको क्या समस्या थी?
क्रिस्टियान

एंड्रॉइड में विभाजन एक साधारण स्ट्रिंग डिवाइडर के बजाय एक नियमित अभिव्यक्ति प्राप्त करता है।
htafoya

1
@ हार्दिकपरमार etPhoneNo.getText().toString().replaceAll("\\D", "");कहते हैं कि इसके स्थान पर सभी को प्रतिस्थापित करें जो अंक नहीं है
मिलापांक

86

.Split विधि काम करेगी, लेकिन यह नियमित अभिव्यक्ति का उपयोग करती है। इस उदाहरण में यह होगा (क्रिस्टियन से चोरी करने के लिए):

String[] separated = CurrentString.split("\\:");
separated[0]; // this will contain "Fruit"
separated[1]; // this will contain " they taste good"

इसके अलावा, यह आया है: एंड्रॉइड विभाजन सही तरीके से काम नहीं कर रहा है


52

अल्पविराम द्वारा Android विभाजन स्ट्रिंग

String data = "1,Diego Maradona,Footballer,Argentina";
String[] items = data.split(",");
for (String item : items)
{
    System.out.println("item = " + item);
}

25
     String s = "having Community Portal|Help Desk|Local Embassy|Reference Desk|Site News";
     StringTokenizer st = new StringTokenizer(s, "|");
        String community = st.nextToken();
        String helpDesk = st.nextToken(); 
        String localEmbassy = st.nextToken();
        String referenceDesk = st.nextToken();
        String siteNews = st.nextToken();

22

आप Android विशिष्ट TextUtils.split () विधि पर भी विचार कर सकते हैं ।

TextUtils.split () और String.split () के बीच का अंतर TextUtils.split () के साथ प्रलेखित है:

स्ट्रिंग को विभाजित करने के लिए खाली होने पर String.split () रिटर्न ['']। यह रिटर्न []। यह परिणाम से कोई खाली स्ट्रिंग नहीं निकालता है।

मुझे यह अधिक स्वाभाविक व्यवहार लगता है। सार में TextUtils.split () String.split () के लिए सिर्फ एक पतली आवरण है, विशेष रूप से खाली-स्ट्रिंग मामले से निपटना। विधि के लिए कोड वास्तव में काफी सरल है।


सीधे स्ट्रिंग पर कॉलिंग स्प्लिट () के बजाय TextUtils.split () का उपयोग करने का क्या लाभ है?
निबेरियस

संपादित जवाब TextUtils.split () और String.split () के बीच अंतर को स्पष्ट करने
gardarh

धन्यवाद, मैंने वास्तव में TextUtils.split () के लिए प्रलेखन पढ़ा, लेकिन किसी कारण से मैंने इस विवरण को याद किया। मुझे लगता है कि मैं यह समझने के लिए थक गया था कि यह वास्तव में क्या कहा गया है।
निबेरियस

0

स्ट्रिंग s = "स्ट्रिंग ="

स्ट्रिंग [] str = s.split ("="); // अब str [0] "हैलो" है और str [1] "गुडमार्निंग, 2,1" है

इस तार को जोड़ें

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