2017-03-03 19 views
5

मेरे पास दो प्रकार के स्ट्रिंग्स हैं। एक "abcdEfgh" और "abcd efgh" है। इसका मतलब है कि पहले स्ट्रिंग में ऊपरी केस अक्षर होता है और दूसरी स्ट्रिंग में सफेद स्थान होता है। तो अब मैं जावा में इन दो पैटर्न स्ट्रिंग को कैसे देखूं और दो स्ट्रिंग्स कैसे बना सकता हूं।जावा में स्ट्रिंग्स को कैसे विभाजित करें

String givenString; 

if (givenString.equals("abcdEfgh")) { 
    String str1 = abcd; 
    String str2 = Efgh; 
} else (givenString.equals("abcd efgh") { 
    String str1 = abcd; 
    String str2 = efgh; 
} 

समाधान प्रदान करें धन्यवाद

+1

स्ट्रिंग कक्षा में एक विभाजित विधि है। 'givenString.split (" "); 'सफेद अंतरिक्ष उदाहरण के लिए। –

+3

और अपरकेस उदाहरण के लिए, http://stackoverflow.com/questions/3752636/java-split-string-when-an-uppercase-letter-is-found – BackSlash

+2

[जावा: स्प्लिट स्ट्रिंग जब एक अपरकेस अक्षर है) का संभावित डुप्लिकेट मिला] (http://stackoverflow.com/questions/3752636/java-split-string-when-an-uppercase-letter-is-found) –

उत्तर

5

आप regex का उपयोग कर \\s|(?=[A-Z])

  1. \\s खाली स्थान के के मामले से निपटने के लिए है विभाजित कर सकते हैं।
  2. (?=[A-Z]) सकारात्मक दिखने वाला है। यह पूंजी पत्र पाता है लेकिन विभाजित करते समय डिलीमीटर रखता है।

String givenString; 
String split[] = givenString.split("\\s|(?=[A-Z])"); 
String str1 = split[0]; 
String str2 = split[1]; 

दोनों ही मामलों के लिए

टेस्ट मामले 1

//case 1 
givenString = "abcdEfgh"; 
str1 = abcd 
str2 = Efgh 

टेस्ट मामला 2

//case 2 
givenString = "abcd efgh"; 
str1 = abcd 
str2 = efgh 
+0

@RamanSahasi आपके उत्तर के लिए धन्यवाद। मुझे मिल रहा है, टेस्ट केस में str1 = null और str2 = abcd 1 –

+0

@RamanSahasi टेस्ट केस 2 में, str1 = null और str2 = abcd –

+0

@PratibhaPatil मैंने इस कोड को संकलित और परीक्षण किया है। कृपया [मेरे परीक्षण मामलों के इस ऑनलाइन संस्करण] पर एक नज़र डालें [http://www.tutorialspoint.com/compile_java_online.php?PID=0Bw_CjBb95KQMWGdEbkJERm12dUU)। –

2

आप OR ऑपरेटर | का उपयोग कर दो शर्तों गठबंधन करने के लिए की जरूरत है। आप पहले से ही अंतरिक्ष से विभाजित पता लगा चुके हैं बस "" है। अपरकेस उदाहरण अंतरिक्ष के लिए खोज givenString में Java: Split string when an uppercase letter is found

उदाहरण द्वारा उत्तर दिया है

String one = "abcdEfgh"; 
String two = "abcd efgh"; 

System.out.println(Arrays.toString(one.split(" |(?=\\p{Upper})"))); 
System.out.println(Arrays.toString(two.split(" |(?=\\p{Upper})"))); 

आउटपुट

[abcd, Efgh] 
[abcd, efgh] 
+0

धन्यवाद @ एडम, दोनों ऊपरी मामले और सफेद जगह के लिए समान पैटर्न? –

+0

@ प्रतिभापातिल यप, जैसा कि मेरा उदाहरण दिखाता है कि एक ही पैटर्न का उपयोग किया जा सकता है – Adam

0

रखें यह सरल, बजाय मामले की संवेदनशील matchs के

if(givenString.indexOf(" ") != -1){ 
    System.out.println("The string has spaces"); 
}else{ 
    System.out.println("The string has NO spaces"); 
} 
संबंधित मुद्दे