2013-05-16 5 views
9

जब मैं प्रदर्शनमामले असंवेदनशील स्ट्रिंग विभाजन() विधि

String test="23x34 "; 
String[] array=test.split("x"); //splitting using simple letter 

मैं 23 और 34

के रूप में सरणी में दो आइटम मिल गया लेकिन जब मैं

String test="23x34 "; 
String[] array=test.split("X"); //splitting using capitalletter 

किया मैं में एक आइटम मिल गया सरणी 23x34

तो क्या कोई तरीका है कि मैं विभाजित विधि का उपयोग कर सकता हूं जैसे कि असंवेदनशील या क्या कोई अन्य विधि है मदद कर सकते है?

उत्तर

14

split

String x = "24X45"; 
String[] res = x.split("[xX]"); 
System.out.println(Arrays.toString(res)); 
+0

धन्यवाद यह काम करता है। –

0

जावा के स्ट्रिंग वर्ग 'विभाजन विधि में उपयोग regex पैटर्न [xX] भी regex स्वीकार करता है।

बातें कम रखने के लिए, यह आप की मदद करनी चाहिए: http://www.coderanch.com/t/480781/java/java/String-split

+1

"रेगेक्स स्वीकार करता है" वास्तव में * केवल * regex स्वीकार करता है। – wchargin

+0

@WChargin तो सच है। और मैंने कल इसे महसूस किया। – zEro

36

split का उपयोग करता है, के रूप में प्रलेखन चलता है, एक regexp। अपने उदाहरण के लिए एक regexp होगा:

"[xX]" 

इसके अलावा, (?i) ध्वज मामले insensitivty टॉगल करता है। इसलिए, निम्नलिखित भी सही है:

"(?i)x" 

इस मामले में, x ठीक से किसी भी litteral हो सकता है भाग निकले।

+0

डाउनवॉटर कृपया टिप्पणी करें। – njzk2

+3

+1: '(? I)' के लिए। '12 (i i) 'के लिए – wchargin

+1

+1, इसका उपयोग वाक्यों के लिए किया जा सकता है। पूर्व: 'स्ट्रिंग [] सरणी =" 24xXx45 ".split (" (? I) XXX "); // [24, 45] ' –

7

आप भी अपने regex में एक एम्बेडेड ध्वज का उपयोग कर सकते हैं:

String[] array = test.split("(?i)x"); // splits case insensitive 
-1

आप एक regex एक तर्क के रूप split करने के लिए, इस तरह इस्तेमाल कर सकते हैं:

"32x23".split("[xX]"); 

या आप एक StringTokenizer इस्तेमाल कर सकते हैं कि आपको डिलीमीटरों का सेट सेट करने देता है, जैसे:

StringTokenizer st = new StringTokenizer("32x23","xX"); 
//           ^^ ^^ 
//          string delimiter 

इसमें लाभ यह है कि यदि आप प्रोग्रामर रूप से delimiters की सूची बनाना चाहते हैं, उदाहरण के लिए डेलीमीटर सूची में प्रत्येक लोअरकेस अक्षर के लिए इसके अपरकेस संवाददाता जोड़ें, तो आप यह कर सकते हैं और फिर परिणाम को StringTokenizer पर पास कर सकते हैं।

2

मैं व्यक्तिगत रूप से,

String modified = Pattern.compile("x", Pattern.CASE_INSENSITIVE).matcher(stringContents).replaceAll(splitterValue); 
String[] parts = modified.split(splitterValue); 

का उपयोग कर इस तरह आप सुनिश्चित कर सकते हैं किसी भी regex काम करेंगे पसंद करते हैं जब तक आप एक अनूठा स्प्लिटर मूल्य

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