2016-06-03 4 views
5
String string = "3 5 3 -4 2 3 "; 

मैं यहाँ split() उपयोग करना चाहते हैं के रूप में पूरे एक विशिष्ट चरित्र युक्त शब्द का उपयोग लेकिन मैं एक विभाजक की जरूरत -4 किया जाना है। मुझे नहीं पता कि कौन से नंबर नकारात्मक हैं और मुझे अलग-अलग सरणी में समूह सकारात्मक संख्याओं में विभाजित करने की आवश्यकता है।जावा विभाजन(), विभाजक

क्या यह संभव है?

संपादित करें:

मैं उपयोग करना चाहते हैं:

String[] parts = string.split(????); 

और

parts[0] = "3 5 3" 
parts[1] = "2 3" 
+0

क्या है 'टुकड़ा()'? – Tunaki

+0

मेरा मतलब है '0 विभाजन' – dddeee

+0

यदि आप अंतरिक्ष पर विभाजित हैं तो इससे कोई फर्क नहीं पड़ता है ... तो आप शर्त या नकारात्मक (सकारात्मक/सकारात्मक इत्यादि) द्वारा आइटम को समूहबद्ध करने के लिए स्ट्रीम और फिल्टर का उपयोग कर सकते हैं – alfasin

उत्तर

7

मैंने जो टिप्पणियों में उल्लेख किया है, उससे आप -\\d+ का उपयोग विभाजन के लिए कर सकते हैं। यह उन सभी स्थानों को पाता है जहां - है और इसके बाद किसी भी संख्या में अंक हैं। हम सरणी तत्वों बाद में ट्रिम कर सकते हैं अगर हम चाहते हैं

जावा कोड

String Str = new String("3 5 3 -4 2 3"); 
String[] x = Str.split("-\\d+"); 

for (String retval: x){ 
    System.out.println(retval.trim()); 
} 

Ideone Demo

0

का उपयोग StringUtils प्राप्त आप इस

public static void main(String[] args) { 
    String splitMe="123-457"; 
    String [] newArray=StringUtils.split(splitMe, "-4"); 


    for (String val:newArray){ 
     System.out.println(val.toString()); 
    } 
} 

उत्पादन की तरह कुछ कर सकते हैं 123 हो जाएगा 1 में के लिए डेक्स और 57 दूसरे सूचकांक

+1

मैंने डाउनवॉटेड किया क्योंकि आपका उत्तर केवल * उदाहरण * के लिए काम कर रहा है जो उपयोगकर्ता प्रदान करता है। मुझे नहीं लगता कि सवाल केवल विशिष्ट स्ट्रिंग के बारे में था। अन्यथा, मैन्युअल रूप से दो सरणी बनाने के लिए तेज़ होगा, एक "123" और दूसरा "57" वाला होगा ... साथ ही, मुझे उस मामले में स्ट्रिंग के विभाजन के बजाय स्ट्रिंगयूटिल का उपयोग करने की आवश्यकता दिखाई नहीं दे रही है। – vefthym

+1

@vefthym वह दिखा रहा है कि स्ट्रिंगयूटिल का उपयोग कैसे किया जाता है - यह उत्तर पूरी तरह से मान्य है। सभी पूछने वाले को पैरामीटर को स्वैप करना होगा। –

+1

@ जेरेमीकाटो मैं असहमत हूं।कृपया, rock321987 के उत्तर देखें (http://stackoverflow.com/a/37622489/2516301)। यह किसी भी नकारात्मक संख्या के लिए काम करता है। आपने ओपी के इस हिस्से को याद किया होगा: "मुझे नहीं पता कि कौन से नंबर नकारात्मक हैं और मुझे अलग-अलग सरणी में समूह सकारात्मक संख्याओं में विभाजित करने की आवश्यकता है।" -4 सिर्फ एक उदाहरण है – vefthym

2

के लिए आप किसी एक स्ट्रिंग के लिए खोज (इस मामले, -4 में) और अपनी पसंद का एक सीमांकक, शायद एक पाइप-बार लाइन (|) से बदलने के लिए replace विधि का उपयोग कर सकते हैं। फिर आप विभाजन विधि का उपयोग कर सकते हैं और डेलिमीटर का उपयोग कर सकते हैं जो अब आपके सरणी को विभाजित करने के लिए डाला गया है।

string = string.replace(replaceString, "|"); 
string[] parts = string.split('|'); 

माना जाता है कि यह थोड़ा चौराहे है, लेकिन यह तेज़, आसान और काम करेगा।

संबंधित मुद्दे