2010-11-29 19 views
6

मैं जावा में एक स्ट्रिंग कैसे विभाजित कर सकता हूं?
मैं एक स्ट्रिंग पढ़ने तक एक स्ट्रिंग पढ़ना चाहूंगा।
फिर अंतरिक्ष के बाद इसे एक अलग स्ट्रिंग में विभाजित करें।स्पेस फिर स्प्लिट तक स्ट्रिंग पढ़ें - जावा

उदा। स्ट्रिंग fullcmd = /join luke
मैं इसे में विभाजित करना चाहते हैं:
स्ट्रिंग cmd = /join
स्ट्रिंग नाम = luke
या
स्ट्रिंग fullcmd = /leave luke
मैं इसे में विभाजित करना चाहते हैं:
स्ट्रिंग cmd = /leave
स्ट्रिंग नाम = luke

तो यह है कि मैं कर सकते हैं:

if(cmd.equals"/join") System.out.println(name + " joined."); 
else if(cmd.equals"/leave" System.out.println(name + " left."); 

मैं String cmd = fullcmd.substring(0,5);
कर लेकिन cmd की दूरी आदेश पर निर्भर करता है के बारे में सोचना था।

+0

string.split ('')? जो रिक्त स्थान पर स्ट्रिंग को विभाजित करेगा, जिसके परिणामस्वरूप आपको एक सरणी मिल जाएगी। तो यदि आपके पास रिक्त स्थान पर "ल्यूक में शामिल हों" और विभाजित() है, तो आपके पास सरणी तत्व 0 = "/ join" और सरणी तत्व 1 = "ल्यूक" होगा। – charliegriefer

उत्तर

15

का प्रयोग करेंगे यह सबसे आसान अगर आप String.split()

String[] tokens = fullcmd.split(" "); 
if(tokens.length!=2){throw new IllegalArgumentException();} 
String command = tokens[0]; 
String person = tokens[1]; 
// now do your processing 
+0

धन्यवाद मैंने इसे अपने प्रोग्राम – Luke

+0

में उपयोग किया है, आप निश्चित रूप से स्वागत करते हैं –

4

String.split का उपयोग करें।

आपके मामले में, आप

fullcmd.split(" "); 
+2

मुझे लगता है कि वह fullcmd.split ("") चाहता है? – charliegriefer

+0

@charliegriefer: सही किया गया, यह इंगित करने के लिए धन्यवाद कि – darioo

1

का उपयोग आप कमांड लाइन तर्क से पार्स करने रहे हैं, तो है, वहाँ एक apache commons cli जिसमें आदेश पंक्ति तर्क पार्स है आपके लिए वस्तुओं

3

जैसा कि दारू द्वारा String.split() का उल्लेख किया गया है। ध्यान दें कि तर्क एक साधारण डेलीमीटर लेकिन नियमित अभिव्यक्ति नहीं है, इसलिए आपके मामले में आप कह सकते हैं: str.split('\\s+') जो आपके वाक्य को अलग-अलग शब्दों के ईवेंट में विभाजित करता है यदि शब्दों को कई रिक्त स्थानों द्वारा सीमित किया जाता है।

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