मुझे अपने स्ट्रिंग को रिक्त स्थान से विभाजित करने की आवश्यकता है। इसके लिए मैंने कोशिश की:
str = "Hello I'm your String";
String[] splited = str.split(" ");
लेकिन यह काम नहीं करता है।
fork
ऊपरी बाएं कोने के पास स्थित लिंक पर क्लिक करें ।
मुझे अपने स्ट्रिंग को रिक्त स्थान से विभाजित करने की आवश्यकता है। इसके लिए मैंने कोशिश की:
str = "Hello I'm your String";
String[] splited = str.split(" ");
लेकिन यह काम नहीं करता है।
fork
ऊपरी बाएं कोने के पास स्थित लिंक पर क्लिक करें ।
जवाबों:
आपके पास क्या काम होना चाहिए। यदि, हालांकि, उपलब्ध कराए गए स्थान ... कुछ और करने के लिए डिफ़ॉल्ट हैं? आप व्हॉट्सएप regex का उपयोग कर सकते हैं:
str = "Hello I'm your String";
String[] splited = str.split("\\s+");
यह आपके स्ट्रिंग को टोकन में विभाजित करने के लिए लगातार रिक्त स्थान की किसी भी संख्या का कारण होगा।
एक साइड नोट के रूप में, मुझे यकीन नहीं है कि "विभाजन" एक शब्द है :) मेरा मानना है कि विभाजन का शिकार होने की स्थिति भी "विभाजन" है। यह उन मुश्किल व्याकरण चीजों में से एक है :-) अचार होने की कोशिश नहीं कर रहा है, बस मुझे लगा कि मैं इसे पास कर दूंगा!
जबकि स्वीकृत उत्तर अच्छा है, इस बात से अवगत रहें कि यदि आपका इनपुट स्ट्रिंग एक सफेद स्थान से शुरू होता है, तो आप एक अग्रणी रिक्त स्ट्रिंग के साथ समाप्त हो जाएंगे। उदाहरण के लिए, साथ:
String str = " Hello I'm your String";
String[] splitStr = str.split("\\s+");
परिणाम होगा:
splitStr[0] == "";
splitStr[1] == "Hello";
splitStr[2] == "I'm";
splitStr[3] == "Your";
splitStr[4] == "String";
तो आप इसे विभाजित करने से पहले अपनी स्ट्रिंग को ट्रिम करना चाहते हैं:
String str = " Hello I'm your String";
String[] splitStr = str.trim().split("\\s+");
Stringutils.split()
सफेद छेद द्वारा स्ट्रिंग को विभाजित करने के लिए उपयोग करें । उदाहरण के लिए StringUtils.split("Hello World")
"हेलो" और "वर्ल्ड" रिटर्न;
उल्लिखित मामले को हल करने के लिए हम इस तरह विभाजन विधि का उपयोग करते हैं
String split[]= StringUtils.split("Hello I'm your String");
जब हम विभाजित सरणी को प्रिंट करेंगे तो आउटपुट होगा:
हैलो
मैं हूँ
तुम्हारी
तार
प्रयत्न
String[] splited = str.split("\\s");
http://download.oracle.com/javase/tutorial/essential/regex/pre_char_classes.html
अगर किसी तरह आप स्ट्रिंग विभाजन विधि का उपयोग नहीं करना चाहते हैं तो आप जावा में StringTokenizer वर्ग का उपयोग कर सकते हैं ..
StringTokenizer tokens = new StringTokenizer("Hello I'm your String", " ");
String[] splited = new String[tokens.countTokens()];
int index = 0;
while(tokens.hasMoreTokens()){
splited[index] = tokens.nextToken();
++index;
}
इसको आजमाओ
String str = "This is String";
String[] splited = str.split("\\s+");
String split_one=splited[0];
String split_second=splited[1];
String split_three=splited[2];
Log.d("Splited String ", "Splited String" + split_one+split_second+split_three);
ठीक है, इसलिए हमें बंटवारा करना होगा क्योंकि आपको पहले ही जवाब मिल गया था कि मैं इसे सामान्य कर दूंगा।
यदि आप रिक्त स्थान, सीमांकक (विशेष वर्ण) द्वारा किसी भी स्ट्रिंग को विभाजित करना चाहते हैं।
सबसे पहले, प्रमुख स्थान को हटा दें क्योंकि वे अधिकांश मुद्दे बनाते हैं।
str1 = " Hello I'm your String ";
str2 = " Are you serious about this question_ boy, aren't you? ";
पहले अग्रणी स्थान को हटा दें जो स्थान, टैब आदि हो सकता है।
String s = str1.replaceAll("^\\s+","");//starting with whitespace one or more
अब अगर आप अंतरिक्ष या किसी विशेष आकर्षण से विभाजित करना चाहते हैं।
String[] sa = s.split("[^\\w]+");//split by any non word char
लेकिन जैसे कि w में [a-zA-Z_0-9] शामिल है, इसलिए यदि आप अंडरस्कोर (_) द्वारा विभाजित करना चाहते हैं तो भी उपयोग करें
String[] sa = s.split("[!,? ._'@]+");//for str2 after removing leading space
replaceAll("^\\s+","")
मेरा दिन बचा लिया। मेरे मामले के लिए काम किया। धन्यवाद
आप नीचे दिए गए कोड का उपयोग करके स्ट्रिंग को सीप कर सकते हैं
String thisString="Hello world";
String[] parts = theString.split(" ");
String first = parts[0];//"hello"
String second = parts[1];//"World"
चूंकि इन उत्तरों को पोस्ट किए हुए कुछ समय हो गया है, इसलिए यहां एक और वर्तमान तरीका है जो पूछा जाता है:
List<String> output = new ArrayList<>();
try (Scanner sc = new Scanner(inputString)) {
while (sc.hasNext()) output.add(sc.next());
}
अब आपके पास स्ट्रिंग्स की एक सूची है (जो किसी सरणी से बेहतर है); यदि आपको एक सरणी की आवश्यकता है, तो आप कर सकते हैंoutput.toArray(new String[0]);
स्पेस द्वारा स्पिट स्ट्रिंग के लिए सरल
String CurrentString = "First Second Last";
String[] separated = CurrentString.split(" ");
for (int i = 0; i < separated.length; i++) {
if (i == 0) {
Log.d("FName ** ", "" + separated[0].trim() + "\n ");
} else if (i == 1) {
Log.d("MName ** ", "" + separated[1].trim() + "\n ");
} else if (i == 2) {
Log.d("LName ** ", "" + separated[2].trim());
}
}